一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

詳解Visual Studio 2010中的擴(kuò)展管理器

  擴(kuò)展能夠?yàn)楹诵?a href=/pingce/yingyong/ target=_blank class=infotextkey>應(yīng)用程序提供附加的功能或者自定義設(shè)置。在很多應(yīng)用程序中這都是很流行的,包括流行的web瀏覽器IE和Firefox、微軟的Office、媒體播放器、Photoshop、Eclipse、Visual Studio等等。其中有些可能比較新奇,而針對(duì)開(kāi)發(fā)工具——像Eclipse和Visual Studio——的擴(kuò)展讓開(kāi)發(fā)者的生產(chǎn)力得到了顯著提高。

  Visual Studio早期的版本是構(gòu)建在COM技術(shù)之上的。而Visual Studio的主要擴(kuò)展方式插件是通過(guò)COM接口實(shí)現(xiàn)的。隨著時(shí)間的變化,插件機(jī)制已經(jīng)得到了改善。在2002年,隨著Visual Studio .NET的發(fā)布,微軟引入了.NET和COM之間的互操作性。在Visual Studio 2005中,插件支持使用XML的簡(jiǎn)化部署方式。之后不久,微軟發(fā)布了Visual Studio SDK開(kāi)發(fā)包,這是一種更為新式的機(jī)制,通過(guò)底層的API提供了與Visual Studio的IDE更深層次的整合。

  隨著時(shí)間的推移,Visual Studio擴(kuò)展的部署技術(shù)也得到了改善。在Visual Studio 2005中引入了Visual Studio 內(nèi)容安裝器(Content Installer VSI),它可以用于部署宏、插件、工具箱控件、代碼片段以及模板。而更廣泛地用于應(yīng)用程序安裝的Windows安裝包(MSI),則成為針對(duì)Visual Studio包的主要部署技術(shù)。 VSI和MSI格式的文件中都包含了完整的分發(fā)包。

  這種設(shè)計(jì)導(dǎo)致了一些交付問(wèn)題。為了獲得擴(kuò)展,用戶需要在不計(jì)其數(shù)的網(wǎng)絡(luò)站點(diǎn)中搜索、下載和安裝。管理擴(kuò)展的依賴關(guān)系和更新既不簡(jiǎn)單,也不易懂。

  在Visual Studio 2010增加的多種新特性中,新的擴(kuò)展管理器就是為了解決擴(kuò)展部署問(wèn)題的。它遵循了一種新的用于發(fā)布和部署第三方擴(kuò)展的趨勢(shì),這種趨勢(shì)是由于像Firefox和Eclipse這樣的項(xiàng)目而變得流行。

  本文會(huì)向你介紹Visual Studio 2010的擴(kuò)展管理器。你會(huì)了解到如何構(gòu)建簡(jiǎn)單的擴(kuò)展,并把它部署到Visual Studio Gallery中。

  嶄新的用戶體驗(yàn)

  應(yīng)用程序擴(kuò)展是與核心應(yīng)用程序分別發(fā)布的。傳統(tǒng)上認(rèn)為它們更像是獨(dú)立的應(yīng)用程序。盡管隨著時(shí)間的推移,Visual Studio擴(kuò)展性的很多方面都得到了改善,然而交付機(jī)制還是沒(méi)有太多的改變。它遵循的是雙擊工作流(double-clicking workflow),那并不容易。

  在哪里能夠找到擴(kuò)展?

  如何管理擴(kuò)展的生命周期,包括安裝、更新和卸載?

  在過(guò)去,想要找到針對(duì)Visual Studio的正確的擴(kuò)展,我們需要做大量的搜索工作。開(kāi)發(fā)者可以在InterNET上搜索擴(kuò)展,或者可以從雜志的文章中、論壇的帖子中或者博文中獲得擴(kuò)展的信息。但我們很難發(fā)現(xiàn)所有可用的選擇,而且也很難對(duì)類似的擴(kuò)展進(jìn)行比較。

  有了Visual Studio Gallery之后,這種狀況已經(jīng)得到了改變。這個(gè)站點(diǎn)是Visual Studio擴(kuò)展的官方和集中資源所在。你可以瀏覽并且訂閱擴(kuò)展的RSS。你還可以閱讀評(píng)論,并提供你的反饋,對(duì)擴(kuò)展打分。

  Visual Studio 2010的擴(kuò)展管理器是與Visual Studio Gallery結(jié)合使用的。它把Visual Studio Gallery帶到了Visual Studio IDE中(如圖1所示)。我們不再需要使用web瀏覽器來(lái)搜索或者運(yùn)行安裝程序了。在Visual Studio 2010中,我們可以通過(guò)Tools | Extension Manager菜單來(lái)打開(kāi)擴(kuò)展管理器。當(dāng)擴(kuò)展管理器打開(kāi)之后,它會(huì)列出已經(jīng)安裝了的擴(kuò)展。如果對(duì)于擴(kuò)展有更新可用,也會(huì)在其中列出來(lái)。在左邊的面板中,點(diǎn)擊“Online Gallery”標(biāo)簽頁(yè),你就可以瀏覽和搜索在“Visual Studio Gallery”中可用的擴(kuò)展了。當(dāng)你選擇一項(xiàng)擴(kuò)展,相關(guān)的描述就會(huì)顯示在右側(cè)的面板中。點(diǎn)擊“下載”按鈕,擴(kuò)展管理器馬上就會(huì)開(kāi)始下載選中的擴(kuò)展。

1

  圖1 Visual Studio 2010的擴(kuò)展管理器

  有時(shí),安裝一項(xiàng)擴(kuò)展需要重啟Visual Studio。這也沒(méi)關(guān)系。 IDE會(huì)返回之前的樣子,載入最新的解決方案。刪除擴(kuò)展同樣很容易。通過(guò)Tools | Extension Manager 菜單打開(kāi)擴(kuò)展管理器,選擇擴(kuò)展,然后點(diǎn)擊“Uninstall”按鈕。

  它不僅提供了簡(jiǎn)單的方式,讓我們可以在Visual Studio IDE中搜索和安裝擴(kuò)展。還提供了對(duì)擴(kuò)展完整的生命周期管理。我們還可以在Visual Studio IDE中對(duì)擴(kuò)展進(jìn)行啟用/禁用、更新和卸載。

  在擴(kuò)展管理器中啟用和禁用擴(kuò)展的能力是值得一提的。正如你將在本文的下一部分將會(huì)看到的,創(chuàng)建擴(kuò)展并把它上傳到Visual Studio Gallery中要比之前容易得多。再也沒(méi)有批準(zhǔn)流程。上傳的內(nèi)容馬上就可以訪問(wèn)。這可能有些風(fēng)險(xiǎn)。某些擴(kuò)展會(huì)有質(zhì)量問(wèn)題,或者與其它擴(kuò)展沖突。在那種情況下,禁用特性會(huì)為其提供幫助。

  自動(dòng)的擴(kuò)展更新通知也是很棒的特性。每次你打開(kāi)VS 2010的一個(gè)實(shí)例的時(shí)候,它就會(huì)自動(dòng)檢查已經(jīng)安裝的擴(kuò)展的更新。當(dāng)找到更新的時(shí)候,它就會(huì)在系統(tǒng)托盤中顯示通知圖標(biāo)。點(diǎn)擊通知,它就會(huì)載入擴(kuò)展管理器來(lái)安裝新的更新。這確保你能夠擁有最新的擴(kuò)展更新,而不需要手動(dòng)地搜索更新。

  有一些擴(kuò)展對(duì)于開(kāi)發(fā)者是必需的。在InterNET上,人們會(huì)告訴你他們最喜歡的擴(kuò)展。在此我列出了我所選擇的部分。建議你嘗試使用它們。那很容易,并且如果你不喜歡,總是可以禁用并卸載它們。

  Visual Studio Productivity Power Tool,這是一組用于提高生產(chǎn)力的工具,像解決方案導(dǎo)航器、帶有改良的標(biāo)簽頁(yè)的用戶界面、可搜索的添加引用對(duì)話框,等等。

  · Snippet Designer,這種擴(kuò)展讓你可以在Visual Studio中創(chuàng)建代碼片段。

  · Spell Check,這種擴(kuò)展為純文本文件、注釋、字符串和HTML/ASP代碼提供了拼寫檢查功能。

  · Tangible T4 Editor,這種擴(kuò)展為T4模板提供了智能提示和語(yǔ)法的突出顯示。

  · GhostDoc,這是一種能夠?yàn)镃#生成XML文檔注釋的擴(kuò)展。

  · Feature Builder Power Tool,這種擴(kuò)展會(huì)幫助你創(chuàng)建擴(kuò)展。

  · PowerGUI,這種擴(kuò)展為PowerShell 腳本提供了智能提示和語(yǔ)法的突出顯示。

  · IronPython IronRuby Console,這種擴(kuò)展讓你能夠在IronPython/IronRuby中與Visual Studio交互。 

  擴(kuò)展管理器的體驗(yàn)讓我們想到了一些直觀的流程,像下載軟件到iPhone、下載插件到Firefox、以及從Amazon下載書籍到Kindle上等等。這可能就是消費(fèi)軟件部署的趨勢(shì)。它是基于InterNET或者云,并且與應(yīng)用程序整合的部署方式。根據(jù)最近在網(wǎng)上泄露的“Windows Store for Windows 8”,我們可能會(huì)在下一版本的Windows中看到這種軟件部署方式。

  現(xiàn)在,Visual Studio 2010擴(kuò)展管理器和Visual Studio Gallery更加以擴(kuò)展為中心。將來(lái),它會(huì)更加以用戶為中心。我希望它會(huì)記住我所選擇的擴(kuò)展,并在所有我登陸的計(jì)算機(jī)中應(yīng)用那些擴(kuò)展。

  在“創(chuàng)建簡(jiǎn)單的擴(kuò)展”部分中,我會(huì)一步一步地創(chuàng)建Hello World擴(kuò)展。

  在嘗試這些步驟之前,你需要確保已經(jīng)下載并安裝了Visual Studio SDK。

  創(chuàng)建Visual Studio Package項(xiàng)目

  首先,使用“Other Project Types | Extensibilities”下面的Visual Studio Package Project模板創(chuàng)建新的項(xiàng)目。

創(chuàng)建Visual Studio Package項(xiàng)目

  圖2 Visual Studio Package Project 模板

  它會(huì)載入Visual Studio Package向?qū)В衅唔?yè),我們可以在其中為Hello World包填寫基本的信息。這是很簡(jiǎn)單的過(guò)程。在第三步中,我選擇了“Menu Command”和“Tool Window”選項(xiàng),從而展現(xiàn)最初針對(duì)菜單項(xiàng)和工具窗口的代碼。(圖3)

創(chuàng)建Visual Studio Package項(xiàng)目

  圖3 創(chuàng)建菜單命令和工具窗口

  檢查項(xiàng)目結(jié)構(gòu)

  在創(chuàng)建了項(xiàng)目之后,讓我們來(lái)檢查其中都有什么。有些東西是值得注意和說(shuō)明的。

  其中有一個(gè)source.extension.vsixmanifest文件。在這個(gè)文件中,會(huì)生成我們?cè)谛陆?xiàng)目向?qū)е休斎氲男畔ⅲ€有包的引用和內(nèi)容。它擁有屬于自己的編輯器(圖4)。

創(chuàng)建Visual Studio Package項(xiàng)目

  圖4 編輯器中的source.extension.vsixmanifest文件  

  在項(xiàng)目的屬性頁(yè)中,有一個(gè)新的VSIX標(biāo)簽頁(yè),讓Visual Studio在調(diào)試擴(kuò)展的時(shí)候,構(gòu)建和/或部署VSIX的過(guò)程中創(chuàng)建VSIX文件。

3

  圖4.1 項(xiàng)目屬性頁(yè)中的VSIX標(biāo)簽頁(yè)

  在Visual Studio 2010之前,擴(kuò)展是作為安裝包部署的,這多少和單獨(dú)的應(yīng)用程序有些類似。它們是在Visual Studio之外使用VSI或者M(jìn)SI分別安裝和維護(hù)的。開(kāi)發(fā)者經(jīng)常會(huì)認(rèn)為編寫Visual Studio擴(kuò)展很難,或者那不是一般開(kāi)發(fā)者所能夠完成的。那是對(duì)的。此外,為Visual Studio擴(kuò)展創(chuàng)建安裝包更困難。

  為了給Visual Studio 2008擴(kuò)展創(chuàng)建安裝包,MSDN上的一篇文章“教程:簡(jiǎn)單的VSPackage部署”建議使用xcopy、安裝項(xiàng)目,或者使用Windows Installer XML Toolset (WiX)。在所有情況下,開(kāi)發(fā)者都不得不學(xué)習(xí)MSI、WiX,或者理解注冊(cè)表的鍵值以注冊(cè)擴(kuò)展。

  使用安裝項(xiàng)目的方法,開(kāi)發(fā)者需要編寫自定義的安裝動(dòng)作來(lái)注冊(cè)擴(kuò)展。使用WiX既耗時(shí)又容易出錯(cuò),因?yàn)槟切枰謩?dòng)編輯XML文件,并且維護(hù)很多GUID值。默認(rèn)情況下,WiX安裝只有最少的功能。開(kāi)發(fā)者需要操作更多的XML文件來(lái)提供功能,像定義安裝文件夾以及顯示許可信息等等。

  在Visual Studio 2010中,對(duì)于開(kāi)發(fā)擴(kuò)展至少在兩個(gè)方面做出了改進(jìn)。使用VSIX來(lái)對(duì)擴(kuò)展打包更容易。 VSIX是在Visual Studio 2010中引入的針對(duì)擴(kuò)展的部署單元。VSIX文件是一種使用了開(kāi)放打包協(xié)議(Open Packaging Convention)的壓縮文件。我們可以從本地硬盤中像VSI和MSI的方式安裝VSIX。 Visual Studio會(huì)識(shí)別出VSIX的文件擴(kuò)展名,把它解壓并把文件安裝在正確的位置中。它還可以通過(guò)Visual Studio Gallery進(jìn)行發(fā)布和升級(jí)。當(dāng)你構(gòu)建擴(kuò)展項(xiàng)目的時(shí)候,Visual Studio 2010擴(kuò)展項(xiàng)目模板就會(huì)生成VSIX文件。

  在Visual Studio 2010中,開(kāi)發(fā)者需要處理XML文件。但是開(kāi)發(fā)者不需要編輯原始的XML文件,Visual Studio 2010為其提供了編輯器。那就是新的VSIX說(shuō)明文件編輯器(圖3)。你所需要做的就是指定相同的VSIX ID——唯一的標(biāo)識(shí)符,以及新的版本號(hào)。然后把它上傳到Gallery中,這樣擁有舊版本的用戶就可以下載更新。

  VSIX本質(zhì)上是一種簡(jiǎn)單的xcopy部署方式。安裝就是要對(duì)包進(jìn)行復(fù)制和解壓。卸載只是刪除文件夾。它不支持高級(jí)的安裝特性,像為GAC添加程序集或者創(chuàng)建桌面快捷方式等等。它也不會(huì)在Visual Studio之外寫入注冊(cè)表。它不支持自定義的動(dòng)作。 MSDN上名為“Visual Studio 擴(kuò)展部署”的文章對(duì)VSIX和MSI能做的和不能做的做了詳細(xì)的說(shuō)明。

  VSIX主要是為了Visual Studio擴(kuò)展部署而設(shè)計(jì)的,并且使用Visual Studio Gallery來(lái)發(fā)布。

  構(gòu)建項(xiàng)目

  在構(gòu)建了項(xiàng)目之后,構(gòu)建的輸出包括封裝后的DLL、包定義文件(pkgdef)以及VSIX文件(圖5)。

  VSIX文件是包的部署文件,你可以把它發(fā)送給用戶來(lái)進(jìn)行安裝,或者上傳到Visual Studio Gallery中。

3

  圖5 構(gòu)建輸出

  調(diào)試和運(yùn)行擴(kuò)展

  在項(xiàng)目的屬性頁(yè)中,調(diào)試選項(xiàng)被設(shè)置為載入Visual Studio實(shí)驗(yàn)環(huán)境。(圖6)

3

  圖6 項(xiàng)目的調(diào)試設(shè)定

  按下F5,就會(huì)載入部署了VSIX的Visual Studio實(shí)驗(yàn)環(huán)境的新實(shí)例。 Visual Studio實(shí)驗(yàn)環(huán)境會(huì)與Visual Studio開(kāi)發(fā)環(huán)境并行運(yùn)行。它是用于開(kāi)發(fā)和測(cè)試Visual Studio包的沙盒環(huán)境。部署在實(shí)驗(yàn)環(huán)境中的包不會(huì)影響你的主開(kāi)發(fā)環(huán)境。實(shí)驗(yàn)環(huán)境擁有自己的設(shè)定、注冊(cè)表項(xiàng)和擴(kuò)展。我們可以使用開(kāi)始菜單中的“重置微軟Visual Studio 2010實(shí)驗(yàn)實(shí)例”選項(xiàng),把它重置為干凈的狀態(tài)。 

  我們創(chuàng)建的簡(jiǎn)單擴(kuò)展會(huì)在Tools菜單下添加“Hello World”菜單項(xiàng)(圖7),并在“View| Other Windows”下添加“Hello World Tool Window”菜單(圖8),我們可以使用它來(lái)顯示工具窗口(圖9)。

1

  圖7 Toos菜單下的“Hello World”菜單

1

  圖8 “View| Other Windows”下的“Hello World Tool Window”菜單

1

  圖9 擴(kuò)展的工具窗口  

  包的主要入口點(diǎn)在于Microsoft.VisualStudio.Shell.Package的子類中。它擁有多個(gè)與包的注冊(cè)相關(guān)的屬性,我們會(huì)在安裝和注冊(cè)的過(guò)程中使用它們。(圖10)

1

  圖10 Package類

  你可以在名為Initialize的重載函數(shù)中編寫代碼,從而在載入你的包時(shí)與Visual Studio交互。在我們簡(jiǎn)單的包中,“Hello World”和“Hello World Tool Window”菜單都是在這個(gè)初始化函數(shù)中創(chuàng)建的。

1

  圖11 Initialize函數(shù)

  菜單的回調(diào)函數(shù)是MenuItemCallBack和ShowToolWindow。當(dāng)點(diǎn)擊“Hello World”菜單的時(shí)候,就會(huì)觸發(fā)MenuItemCallBack 函數(shù)。默認(rèn)的代碼是要顯示一個(gè)消息框。它是你的包邏輯的起始點(diǎn)。當(dāng)點(diǎn)擊“Hello World Tool Window”菜單的時(shí)候,就會(huì)觸發(fā)ShowToolWindow函數(shù)。默認(rèn)的代碼是以標(biāo)準(zhǔn)的方式彈出工具窗口。

  工具窗口是Visual Studio IDE的子窗口。和工具箱、解決方案管理器和屬性窗口一樣,它可以停靠、浮動(dòng)或者以標(biāo)簽的形式顯示在文檔框架中。它們是動(dòng)態(tài)的(或者說(shuō)是自動(dòng)可見(jiàn)的)。有了Visual Studio 2010對(duì)多顯示器的支持,工具窗口也可以脫離開(kāi)來(lái),并拖拽到第二臺(tái)顯示器中。 Visual Studio Package Project模板默認(rèn)情況下會(huì)為工具窗口創(chuàng)建WPF的用戶控件。

  現(xiàn)在我們已經(jīng)有了Visual Studio Package的骨架,可以構(gòu)建他來(lái)生成可以分發(fā)的VSIX文件,我們或者可以通過(guò)復(fù)制的形式或者通過(guò)Visual Studio Gallery來(lái)分發(fā)它。

  發(fā)布到Visual Studio Gallery

  想要通過(guò)Visual Studio Gallery來(lái)發(fā)布擴(kuò)展,只需要三步,就可以發(fā)布你的擴(kuò)展,從而讓全世界的開(kāi)發(fā)者都能夠訪問(wèn)到它。

  ·選擇你的擴(kuò)展的類型

  ·上傳VSIX文件

  ·添加附加的類別和描述。

  Visual Studio Gallery會(huì)從VSIX中取得元數(shù)據(jù),包括名稱、ID、版本、公司、許可以及產(chǎn)品的圖片。擴(kuò)展管理器會(huì)使用版本號(hào)來(lái)自動(dòng)管理擴(kuò)展的更新。

1

  圖12 Visual Studio Gallery

  當(dāng)你的擴(kuò)展有新版本時(shí),你所需要做的就是在VSIX的說(shuō)明文件編輯器中更改版本號(hào),構(gòu)建新的VSIX文件并上傳到Visual Studio Gallery中。這樣,更新就馬上可以提供給用戶下載了。當(dāng)用戶啟動(dòng)Visual Studio新的實(shí)例時(shí),Visual Studio就會(huì)在系統(tǒng)托盤顯示新的更新通知。

  有時(shí)這是很方便的,因?yàn)閂isual Studio Gallery沒(méi)有驗(yàn)證過(guò)程。發(fā)布擴(kuò)展就像在推特上發(fā)布一條消息一樣簡(jiǎn)單。對(duì)擴(kuò)展開(kāi)發(fā)者的一項(xiàng)提示是,你應(yīng)該盡可能地測(cè)試以保證質(zhì)量。你不應(yīng)該先上傳擴(kuò)展,然后才開(kāi)始測(cè)試,因?yàn)樗R上會(huì)被大家所發(fā)現(xiàn)。 VSIX支持雙擊安裝,就像VSI和MSI一樣。如果其中有bug,那么就使用擴(kuò)展管理器來(lái)卸載它,創(chuàng)建新構(gòu)建的VSIX,然后雙擊它來(lái)安裝并進(jìn)行測(cè)試。在開(kāi)發(fā)過(guò)程中,你不需要提升版本號(hào)。記著在完整地測(cè)試之后在把它上傳到Visual Studio Gallery中。

  這會(huì)帶來(lái)另一種提示。 Visual Studio Gallery不支持私有分發(fā)。如果你的擴(kuò)展只在你的公司的開(kāi)發(fā)者中使用,那么你就不應(yīng)該把它上傳到Visual Studio Gallery中。相反,你應(yīng)該在公司內(nèi)部發(fā)布VSIX文件。在這種情況下,想要更新擴(kuò)展,你需要手動(dòng)地與擴(kuò)展用戶溝通。

  Visual Studio Gallery的目的之一就是要?jiǎng)?chuàng)建Visual Studio擴(kuò)展的生態(tài)系統(tǒng)。自從幾年之前它可以用于Visual Studio 2008開(kāi)始,人們已經(jīng)上傳了上千個(gè)擴(kuò)展。與其說(shuō)是一種商業(yè)集市,不如說(shuō)是一種社區(qū)分享站點(diǎn),就像Apple的App Store和Windows Phone Marketplace一樣。如果開(kāi)發(fā)者想要銷售他們的擴(kuò)展,那么就需要找到其它廠商和付費(fèi)服務(wù),就像舊式的共享軟件發(fā)布一樣。用戶無(wú)法通過(guò)擴(kuò)展管理器付費(fèi)。結(jié)果是,擴(kuò)展管理器和Visual Studio Gallery為開(kāi)源和免費(fèi)的擴(kuò)展項(xiàng)目提供了優(yōu)秀的支持。

  總結(jié)

  Visual Studio 2010的擴(kuò)展管理器和Visual Studio Gallery提升了擴(kuò)展用戶和擴(kuò)展開(kāi)發(fā)者的用戶體驗(yàn)。你應(yīng)該始終記著,那里有成千上萬(wàn)的擴(kuò)展可供你擴(kuò)充Visual Studio的特性。還應(yīng)該始終記著,你可以在Visual Studio中搜索和管理擴(kuò)展的生命周期。如果你對(duì)于擴(kuò)展Visual Studio有什么好主意,那么我建議你試著創(chuàng)建一些Visual Studio擴(kuò)展。 Visual Studio擴(kuò)展會(huì)提升開(kāi)發(fā)的生產(chǎn)力。

NET技術(shù)詳解Visual Studio 2010中的擴(kuò)展管理器,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 一级做α爱过程免费视频 | 美女隐私视频黄www视频 | 国产小视频网址 | 免费在线观看色 | 久久精品免视国产 | 日韩黄色在线观看 | 色美女影院 | 久热精品视频在线观看99小说 | 日韩美女拍拍免费视频网站 | 都市激情一区 | 真人午夜a一级毛片 | 色偷偷亚洲第一成人综合网址 | 亚洲乱强伦| 免费观看成人www精品视频在线 | 色好吊| 国产亚洲精品九九久在线观看 | 欧美一区二区三区gg高清影视 | 国内不卡一二三四区 | 97人人澡人人爽人人爱 | 小视频在线 | 91麻豆精品国产自产在线观看一区 | 两性午夜刺激性视频 | 国产精品第一页在线观看 | 天天拍夜夜添久久精品中文 | 亚洲成人免费网站 | 情se五月天 | 中文字幕日韩欧美一区二区三区 | 思思在线精品 | 国产第一第二第三第四第五 | 毛片久久 | 国内精品小视频在线 | 久久九九青青国产精品 | 天天天天色 | 另类视频第一页 | 欧美色视频在线观看 | 很黄很色视频 | 久久91综合国产91久久精品 | 伊人网在线观看 | 精品中文字幕乱码一区二区 | 女人与拘一级毛片 | 怡红院最新网址 |