久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

devenv 如何識(shí)別 vcxproj:Visual Studio 項(xiàng)目系統(tǒng)與 MSBuild 內(nèi)部機(jī)制解析

devenv 如何識(shí)別 vcxproj:Visual Studio 項(xiàng)目系統(tǒng)與 MSBuild 內(nèi)部機(jī)制解析 在 VS2017 的使用周期里應(yīng)該有不少人做過(guò)這樣的事打開(kāi)命令行敲一句devenv MyProject.vcxproj然后看著 Visual Studio 的界面刷一下蹦出來(lái)項(xiàng)目被掛到了解決方案資源管理器里。如果你再狠一點(diǎn)輸入devenv MyProject.vcxproj /Build構(gòu)建居然也能正常跑。這時(shí)很多人就會(huì)冒出那個(gè)經(jīng)典疑問(wèn)devenv 明明只是一個(gè) IDE 的啟動(dòng)入口它憑什么能認(rèn)一個(gè) .vcxproj 項(xiàng)目文件這背后到底是文件關(guān)聯(lián)的魔法還是 Visual Studio 內(nèi)部藏著一套更深的識(shí)別機(jī)制我當(dāng)年第一次認(rèn)真面對(duì)這個(gè)問(wèn)題是在幫同事排查 CI 構(gòu)建腳本的時(shí)候。腳本里混用了 msbuild 和 devenv兩邊對(duì)同一個(gè) vcxproj 的處理結(jié)果居然不一樣于是我只能一層層往下翻源碼文檔和注冊(cè)表。翻完之后發(fā)現(xiàn)答案并不神秘.vcxproj 本身就是 MSBuild 項(xiàng)目文件而 devenv 的進(jìn)程里就嵌著 MSBuild 引擎再加上 Visual Studio 項(xiàng)目系統(tǒng)的注冊(cè)項(xiàng)這一整套鏈路才讓 devenv 能順理成章地接住vcxproj。這篇文章就把這條鏈路從頭到尾拆開(kāi)講順便帶上我實(shí)際驗(yàn)證過(guò)的命令和踩坑記錄。不管你是剛接觸 VS2017 的 C 新手還是天天跟構(gòu)建腳本打交道的工程效能同學(xué)應(yīng)該都能拿到點(diǎn)能直接用的東西。1. 先搞清楚 devenv 的真實(shí)身份1.1 devenv 不是編譯器它是個(gè)IDE 宿主進(jìn)程很多人會(huì)把devenv.exe當(dāng)成一個(gè)能編譯的編譯器命令行工具這個(gè)理解其實(shí)跑偏了。devenv.exe是 Visual Studio IDE 的進(jìn)程宿主它的職責(zé)是拉起一整套開(kāi)發(fā)環(huán)境加載擴(kuò)展包Package、初始化菜單和工具欄、恢復(fù)上次的窗口布局、創(chuàng)建解決方案模型再把編輯器、調(diào)試器、項(xiàng)目系統(tǒng)這些組件串起來(lái)。真正干編譯活的是項(xiàng)目系統(tǒng)拿到 MSBuild 引擎之后調(diào)用的cl.exe、link.exe、rc.exe這些底層工具。這里可以打一個(gè)不夠嚴(yán)謹(jǐn)?shù)芎枚谋确絛evenv 就像一個(gè)酒店的大堂經(jīng)理它負(fù)責(zé)接待、分配房間、協(xié)調(diào)服務(wù)但真正做飯的是后廚編譯器。你丟給大堂經(jīng)理一張菜單vcxproj他知道該把這張菜單轉(zhuǎn)到哪個(gè)后廚但他自己是不下鍋的。這個(gè)稱(chēng)呼也能解釋很多歷史devenv 全稱(chēng)是 Developer Environment從 Visual Studio .NET 時(shí)代一直用到現(xiàn)在。也就是說(shuō)無(wú)論你從開(kāi)始菜單圖標(biāo)進(jìn) VS還是雙擊 .vcxproj又或者在命令行里手動(dòng)敲最終進(jìn)入的都是這個(gè)主進(jìn)程只是入口參數(shù)不一樣。1.2 雙擊文件與命令行傳參走的是兩條路先區(qū)分兩個(gè)場(chǎng)景不然下面講機(jī)制時(shí)容易混。場(chǎng)景 A你在資源管理器里雙擊一個(gè) .vcxproj。這個(gè)時(shí)候是 Windows Shell 在起作用。系統(tǒng)去注冊(cè)表查 .vcxproj 擴(kuò)展名關(guān)聯(lián)的 ProgID找到對(duì)應(yīng)的 Visual Studio 版本然后拼出一條類(lèi)似devenv.exe %1的現(xiàn)代命令并執(zhí)行。所以雙擊的本質(zhì)還是 devenv只是 Shell 幫你套了一層打開(kāi)方式的包裝。場(chǎng)景 B你在命令行或構(gòu)建腳本里顯式輸入devenv xxx.vcxproj。這個(gè)時(shí)候沒(méi)有 Shell 參與是你直接把參數(shù)交給了 devenv.exe。兩條路最終會(huì)匯到同一個(gè)地方devenv 進(jìn)程啟動(dòng)后對(duì)傳入的命令行參數(shù)做解析區(qū)分出這到底是文件路徑、解決方案路徑、構(gòu)建開(kāi)關(guān)還是調(diào)試開(kāi)關(guān)。關(guān)鍵點(diǎn)在于場(chǎng)景 A 依賴(lài)的是系統(tǒng)注冊(cè)表里的文件關(guān)聯(lián)而場(chǎng)景 B 不依賴(lài)文件關(guān)聯(lián)它靠的是 devenv 進(jìn)程內(nèi)部的輸入分類(lèi)能力。那內(nèi)部是怎么分類(lèi)的這就要說(shuō)到 .vcxproj 的真正身份了。2. 核心答案.vcxproj 和 MSBuild 本來(lái)就是一家2.1 脫掉外殼.vcxproj 就是一份 XML 構(gòu)建腳本.vcxproj 文件雖然叫工程文件看起來(lái)也像一份私有格式的配置但打開(kāi)一看你就明白了它就是一個(gè) XML 文檔。對(duì) MSBuild 引擎來(lái)說(shuō)這個(gè) XML 就是一份完整的構(gòu)建腳本。根節(jié)點(diǎn)是Project里面定義了若干個(gè)PropertyGroup屬性組和ItemGroup項(xiàng)組還有可能出現(xiàn)的Target、Task定義。MSBuild 引擎讀取這個(gè)文件后會(huì)按照節(jié)點(diǎn)結(jié)構(gòu)生成一個(gè)執(zhí)行計(jì)劃然后一步一步調(diào)用具體的任務(wù)執(zhí)行器去完成編譯、鏈接、復(fù)制文件這些操作。我寫(xiě)一個(gè)最小的 vcxproj 核心結(jié)構(gòu)給你感受一下Project DefaultTargetsBuild ToolsVersion15.0 xmlnshttp://schemas.microsoft.com/developer/msbuild/2003 ItemGroup LabelProjectConfigurations ProjectConfiguration IncludeDebug|Win32 ConfigurationDebug/Configuration PlatformWin32/Platform /ProjectConfiguration /ItemGroup ItemGroup ClCompile Includemain.cpp / /ItemGroup Import Project$(VCTargetsPath)\Microsoft.Cpp.Default.props / Import Project$(VCTargetsPath)\Microsoft.Cpp.props / Import Project$(VCTargetsPath)\Microsoft.Cpp.targets / /Project這三個(gè)Import特別關(guān)鍵它們把 Microsoft.Cpp 整套屬性、目標(biāo)文件都導(dǎo)了進(jìn)來(lái)而真正決定如何調(diào)用 cl.exe、怎么傳 /I、/D、/EHsc的邏輯就藏在這些 .props 和 .targets 文件里。所以 vcxproj 不是某種 Visual Studio 私有格式它是開(kāi)放的 MSBuild 項(xiàng)目文件格式任何實(shí)現(xiàn)了 MSBuild 語(yǔ)義的程序都能消費(fèi)它。這也是為什么獨(dú)立的 msbuild.exe 命令行工具也能直接編譯 .vcxproj。2.2 從 vcproj 到 vcxproj一次歷史性的自洽老一點(diǎn)的開(kāi)發(fā)者應(yīng)該記得VC6 和 VS2008 時(shí)代的 C 項(xiàng)目文件叫 .vcproj它是 VC 項(xiàng)目系統(tǒng)自己的私有格式只有 Visual Studio 的 VC 項(xiàng)目系統(tǒng)能完整讀取。那個(gè)時(shí)代的命令行構(gòu)建要么靠 vcbuild 命令要么只能在 IDE 里點(diǎn)鼠標(biāo)做自動(dòng)化構(gòu)建非常痛苦。從 VS2010 開(kāi)始微軟把整個(gè)項(xiàng)目系統(tǒng)整合到 MSBuild 上C 項(xiàng)目格式也隨之升級(jí)成了 .vcxproj。這一改的意義特別大IDE 里看到的項(xiàng)目文件、命令行 msbuild 用的構(gòu)建腳本、CI 服務(wù)器上的自動(dòng)化流程第一次統(tǒng)一成了同一種格式?,F(xiàn)在你再看為什么 devenv 能接受 .vcxproj這個(gè)問(wèn)題第一層答案已經(jīng)呼之欲出因?yàn)?.vcxproj 就是 MSBuild 項(xiàng)目文件而 deve nv 進(jìn)程內(nèi)嵌了 MSBuild 引擎。兩者本來(lái)就是一家的東西不存在跨格式識(shí)別的障礙。舊格式 .vcproj 到了 VS2017 雖然也能被打開(kāi)但會(huì)彈升級(jí)向?qū)П举|(zhì)上就是要把舊項(xiàng)目轉(zhuǎn)換成新的 MSBuild 項(xiàng)目格式反而從側(cè)面印證了這條路。2.3 devenv 進(jìn)程里的 MSBuild 與獨(dú)立的 msbuild.exeVS2017 里devenv 在啟動(dòng)時(shí)會(huì)加載 Microsoft.Build.dll 等程序集并在進(jìn)程內(nèi)部創(chuàng)建 BuildManager、ProjectCollection 這些對(duì)象。也就是說(shuō)你在 IDE 里按 F7 構(gòu)建和你在命令行里手動(dòng)敲 msbuild核心構(gòu)建邏輯使用的是同一套引擎。你甚至可以在 VS2017 的安裝目錄里找到獨(dú)立的 MSBuild 程序集和 msbuild.exe例如C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exedevenv 的調(diào)度主路徑是 devenv.exemsbuild.exe 是獨(dú)立分發(fā)的最小構(gòu)建宿主。二者共享 .targets、.props、工具集定義只是在宿主環(huán)境上有所差異。這一點(diǎn)極其重要后面講為什么 devenv /Build 和 msbuild 結(jié)果不一樣的時(shí)候你會(huì)再看到它。3. 接住 .vcxproj 的完整鏈路從參數(shù)到項(xiàng)目系統(tǒng)3.1 命令行解析devenv 怎么判斷你給的是什么文件當(dāng)用戶(hù)在命令行輸入devenv MyProject.vcxproj時(shí)devenv 主進(jìn)程啟動(dòng)后會(huì)有專(zhuān)門(mén)的命令行解析邏輯處理參數(shù)。它會(huì)遍歷每一個(gè)參數(shù)判斷如果以/或-開(kāi)頭就當(dāng)作開(kāi)關(guān)項(xiàng)處理比如/Build、/Clean否則當(dāng)成文件路徑。拿到文件路徑后devenv 會(huì)先確認(rèn)這個(gè)文件是否存在、是不是目錄再看擴(kuò)展名。對(duì)擴(kuò)展名的判斷不是靠 exe 里寫(xiě)死的字符串而是查系統(tǒng)注冊(cè)表里 Visual Studio 各個(gè)項(xiàng)目系統(tǒng)注冊(cè)過(guò)的項(xiàng)目文件類(lèi)型映射。每家項(xiàng)目系統(tǒng)VC、C#、VB、F#在安裝時(shí)都會(huì)把支持的擴(kuò)展名和對(duì)應(yīng)的項(xiàng)目類(lèi)型 GUID 寫(xiě)進(jìn)注冊(cè)表。devenv 拿到 .vcxproj 后會(huì)在這些映射里找到一條類(lèi)似vcxproj - VC 項(xiàng)目工廠(chǎng)的記錄然后一切就從這里開(kāi)始了。3.2 項(xiàng)目類(lèi)型 GUIDVC 項(xiàng)目靠它認(rèn)親很多搞了多年 VS 開(kāi)發(fā)的人可能都不知道每個(gè)項(xiàng)目類(lèi)型在 Visual Studio 里都有一個(gè) GUID。VC 項(xiàng)目的類(lèi)型 GUID 是個(gè)老資歷{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}這個(gè) GUID 最早可以追溯到 VC6 時(shí)代一直沿用到 VS2017。你在解決方案 .sln 文件里也能看到它格式大致是這樣Project({8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}) MyProject, MyProject.vcxproj, {項(xiàng)目自己的GUID}需要注意的是在 .vcxproj 文件內(nèi)部項(xiàng)目類(lèi)型 GUID 通常不會(huì)顯式寫(xiě)在根節(jié)點(diǎn)上它存在于擴(kuò)展名關(guān)聯(lián)、項(xiàng)目模板注冊(cè)信息和 .sln 的項(xiàng)目聲明中。devenv 根據(jù)擴(kuò)展名找到對(duì)應(yīng)的項(xiàng)目工廠(chǎng)后再由項(xiàng)目工廠(chǎng)實(shí)例化具體的項(xiàng)目對(duì)象。所以嚴(yán)格說(shuō)起來(lái)devenv 并不是在解析一個(gè)文件而是在按注冊(cè)表映射找對(duì)項(xiàng)目系統(tǒng)然后讓項(xiàng)目系統(tǒng)去加載文件。這里還有個(gè)值得補(bǔ)充的點(diǎn)VS2017 的 C 項(xiàng)目系統(tǒng)并沒(méi)有遷移到 Common Project SystemCPS它仍然使用經(jīng)典的 VCProject 項(xiàng)目系統(tǒng)核心類(lèi)叫 VCProjectEngine。CPS 主要用于 C#、VB 這類(lèi)托管語(yǔ)言項(xiàng)目后續(xù)才逐步擴(kuò)展。這也意味著 VC 項(xiàng)目在 devenv 中的加載路徑和 C# 項(xiàng)目的加載路徑是完全不同的。你把 .vcxproj 丟給 devenv它絕對(duì)不會(huì)按 C# 的工廠(chǎng)去處理映射表指向哪個(gè)工廠(chǎng)就走哪條路。3.3 臨時(shí)解決方案項(xiàng)目如何被掛進(jìn)解決方案模型一個(gè)很多人沒(méi)注意到的細(xì)節(jié)你只傳了一個(gè) .vcxproj但打開(kāi) Visual Studio 后看到的還是解決方案資源管理器里面有一個(gè)解決方案節(jié)點(diǎn)下面掛著你的項(xiàng)目。這其實(shí)是 devenv 的單一項(xiàng)目打開(kāi)機(jī)制在起作用。如果傳入的不是 .sln 而是某個(gè)項(xiàng)目文件devenv 會(huì)在內(nèi)部生成一個(gè)內(nèi)存中的解決方案對(duì)象再把項(xiàng)目掛進(jìn)去。這樣 IDE 后續(xù)的構(gòu)建、調(diào)試、NuGet 管理都還是按照解決方案維度來(lái)運(yùn)作只不過(guò)這個(gè)方案是臨時(shí)的等你在 IDE 里另存為 .sln 文件時(shí)才會(huì)真正落盤(pán)。所以devenv 不是破例接受了一個(gè)項(xiàng)目文件它只是把你給的項(xiàng)目文件納入了它熟悉的解決方案模型。這也是為什么你可以在命令行直接傳 .sln 文件devenv 按正常方案打開(kāi)處理邏輯是一樣的。3.4 能被 devenv 接受的遠(yuǎn)不止 .vcxproj把視野放寬一點(diǎn)devenv 能接受的輸入其實(shí)是一個(gè)集合.sln、.slnx、.csproj、.vbproj、.fsproj、.vcxproj、.vcproj舊格式需要通過(guò)升級(jí)向?qū)А?suo 都屬于它懂的格式。遇到這些擴(kuò)展名devenv 會(huì)走項(xiàng)目系統(tǒng)加載遇到不在集合里的普通文件比如單獨(dú)的 main.cppdevenv 不會(huì)拒絕打開(kāi)而是把它當(dāng)成雜項(xiàng)文件顯示在解決方案里的 Misc 區(qū)域或者直接拉到編輯器里讓你看代碼。理解了這一點(diǎn)你就明白了能不能被 devenv 接受的判斷標(biāo)準(zhǔn)不是文件名本身而是這個(gè)擴(kuò)展名是否被某個(gè)已安裝的項(xiàng)目系統(tǒng)在注冊(cè)表里登記過(guò)。如果你裝的 VS2017 缺了 C 桌面開(kāi)發(fā)工作負(fù)載就算 vcxproj 文件放在面前devenv 也只能當(dāng)普通文件打開(kāi)或者報(bào)項(xiàng)目系統(tǒng)缺失。4. 實(shí)操驗(yàn)證在 VS2017 里跑通這幾條命令4.1 環(huán)境準(zhǔn)備先確保工具鏈和命令行入口正常要復(fù)現(xiàn)下面的內(nèi)容你需要一臺(tái)裝了 VS2017 的 Windows 機(jī)器并且確保已經(jīng)安裝了C 桌面開(kāi)發(fā)這個(gè)工作負(fù)載。如果你所在的是隔離內(nèi)網(wǎng)環(huán)境通常的做法是提前用 VS2017 離線(xiàn)安裝包生成布局目錄把 VC 工具集、MSBuild、Windows SDK 這些組件都勾選上再拿布局目錄到目標(biāo)機(jī)器上安裝。很多構(gòu)建機(jī)沒(méi)有外網(wǎng)離線(xiàn)安裝包在這里幾乎成了標(biāo)配省去聯(lián)網(wǎng)下載的麻煩。打開(kāi)命令行也有講究。建議不要直接用默認(rèn)的 cmd而是用開(kāi)始菜單里的Developer Command Prompt for VS 2017開(kāi)發(fā)者命令提示符。這個(gè)入口已經(jīng)幫你初始化好了 INCLUDE、LIB、PATH 等環(huán)境變量能直接找到 devenv.exe 和 msbuild.exe。如果你只有普通 PowerShell那也可以先手動(dòng)把 vs2017 的 Common7\IDE 和 MSBuild\15.0\Bin 目錄加進(jìn) PATH 即可。4.2 準(zhǔn)備一個(gè)最小的 vcxproj 與 main.cpp為了不引入其他干擾我用最原始的方式準(zhǔn)備一個(gè)最小 C 項(xiàng)目一個(gè) main.cpp一個(gè) MyDemo.vcxproj。main.cpp 內(nèi)容很簡(jiǎn)單#include iostream int main() { std::cout hello devenv std::endl; return 0; }.vcxproj 參考前面第 2.1 節(jié)的最小結(jié)構(gòu)是夠的但真正要讓 MSBuild 的 VC 目標(biāo)完整跑起來(lái)里面的 PropertyGroup、Import 順序都不能亂。所以我更建議你直接用 VS2017 新建一個(gè)Windows 桌面應(yīng)用程序模板項(xiàng)目然后把生成的 vcxproj 拿出來(lái)做實(shí)驗(yàn)。模板生成的 vcxproj 包含完整的工具集、平臺(tái)、預(yù)編譯頭、鏈接器配置拿來(lái)做實(shí)驗(yàn)最可靠也不會(huì)因?yàn)樯倭四硞€(gè)節(jié)點(diǎn)而踩坑。4.3 三條命令把打開(kāi)、構(gòu)建、清理串起來(lái)下面三條命令是我個(gè)人最常用的組合建議按順序試一遍devenv MyDemo.vcxproj devenv MyDemo.vcxproj /Build Debug devenv MyDemo.vcxproj /Clean Debug第一條會(huì)啟動(dòng) IDE 并顯示 MyDemo 項(xiàng)目第二條不會(huì)打開(kāi)完整界面而是直接以命令行構(gòu)建模式執(zhí)行 Debug 配置的構(gòu)建第三條清理 Debug 配置下的中間產(chǎn)物。/Build、/Rebuild、/Clean是 devenv 命令行最常用的三個(gè)構(gòu)建開(kāi)關(guān)區(qū)別是Build 做增量編譯Rebuild 全量重編Clean 刪除中間輸出。如果你在解決方案場(chǎng)景下想指定構(gòu)建某個(gè)子項(xiàng)目可以用/Project參數(shù)devenv MySolution.sln /Build Debug /Project MyDemo.vcxproj /ProjectConfig Debug|Win32單個(gè) vcxproj 直接傳進(jìn)去的時(shí)候也可以帶上/ProjectConfig指定平臺(tái)和配置避免 devenv 用默認(rèn)平臺(tái)去匹配導(dǎo)致構(gòu)建被跳過(guò)。4.4 devenv /Build 和 msbuild 的差異誰(shuí)更快誰(shuí)更全很多做 CI 的人都會(huì)糾結(jié)既然 vcxproj 能被 devenv 接受也能被 msbuild 接受那構(gòu)建腳本里到底用哪個(gè)我把差異直接擺出來(lái)。devenv /Build 是帶著 IDE 宿主一起構(gòu)建進(jìn)程初始化更重可能會(huì)加載擴(kuò)展包、創(chuàng)建 ActivityLog所以啟動(dòng)明顯更慢。但它有個(gè)特點(diǎn)能復(fù)現(xiàn) IDE 環(huán)境下的完整行為。比如某些屬性在 IDE 屬性頁(yè)里被可視化地修改過(guò)或者有些擴(kuò)展只在 IDE 宿主下才注入構(gòu)建邏輯。當(dāng)你懷疑IDE 能編、命令行不能編時(shí)先試 devenv /Build 作為對(duì)照組是最合理的。msbuild.exe 是輕量級(jí)宿主不啟動(dòng) IDE只執(zhí)行構(gòu)建引擎。它需要正確的環(huán)境變量INCLUDE、LIB、PATH才能找到工具集所以 CI 里通常先調(diào)用 vcvarsall.bat 再跑 msbuild。優(yōu)點(diǎn)是速度快適合純構(gòu)建場(chǎng)景。對(duì)比項(xiàng)devenv /Buildmsbuild.exe引擎內(nèi)嵌 MSBuild先啟動(dòng) IDE 宿主獨(dú)立 MSBuild 宿主速度較慢啟動(dòng)開(kāi)銷(xiāo)大較快環(huán)境依賴(lài)自動(dòng)定位 VS 內(nèi)部工具依賴(lài) vcvarsall 初始化環(huán)境行為一致性更接近 IDE 手工操作更接近純腳本日志通常生成 ActivityLog.xml輸出可選診斷日志哪種更好沒(méi)有絕對(duì)答案。我的建議是本地排查用 devenv /Build自動(dòng)化構(gòu)建優(yōu)先 msbuild.exe。但如果你的構(gòu)建邏輯里有 IDE 擴(kuò)展參與那統(tǒng)一用 devenv /Build 更穩(wěn)。提示不要把 devenv /Build 當(dāng)成輕量級(jí)工具。它啟動(dòng)的是整個(gè) IDE 宿主進(jìn)程在 CI 節(jié)點(diǎn)上可能因?yàn)樵S可證、擴(kuò)展加載等問(wèn)題出幺蛾子如果純編譯msbuild 更可控。4.5 順帶一提配置 PCL 這種重型庫(kù)時(shí)命令行驗(yàn)證的價(jià)值搜過(guò)Windows 下 VS2017 配置 PCL的人應(yīng)該對(duì)這個(gè)場(chǎng)景很熟PCL 點(diǎn)云庫(kù)配置要編譯一堆依賴(lài)中間大量 .vcxproj 項(xiàng)目需要逐個(gè)構(gòu)建。如果全在 IDE 里點(diǎn)很容易因?yàn)榕渲庙?xiàng)遺漏而返工但如果把構(gòu)建過(guò)程腳本化用 devenv 或 msbuild 在命令行里跑就能快速定位是哪個(gè)項(xiàng)目、哪個(gè)配置出了問(wèn)題。很多 PCL 教程教你把 vcxproj 拖進(jìn) VS 就開(kāi)始 build實(shí)際上你先用devenv xxx.vcxproj /Build Debug跑一遍輸出更干凈問(wèn)題更好定位。這個(gè)習(xí)慣對(duì)后續(xù)排查非常有幫助。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 多個(gè) VS 版本并存時(shí).vcxproj 被搶走了這個(gè)問(wèn)題在裝了多個(gè) VS 版本的機(jī)器上特別常見(jiàn)。資源管理器里雙擊 vcxproj系統(tǒng)按注冊(cè)表關(guān)聯(lián)彈出的可能是 VS2019 或 VS2022而不是你想要的 VS2017。解決思路有兩個(gè)一是右鍵選擇打開(kāi)方式手動(dòng)指向 VS2017 的 devenv.exe二是在命令行里直接指定完整路徑C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe MyDemo.vcxproj這種寫(xiě)法繞過(guò)了文件關(guān)聯(lián)也繞過(guò)了Open With的彈窗選擇適合在腳本里固定版本。5.2 打開(kāi) vcxproj 報(bào)未能加載項(xiàng)目怎么排查可能的坑不少。第一類(lèi)是文件本身的問(wèn)題vcxproj 損壞、XML 語(yǔ)法錯(cuò)誤、被非法編碼破壞。第二類(lèi)是版本問(wèn)題項(xiàng)目是用更高版本 VS 創(chuàng)建的PlatformToolset 在當(dāng)前 VS2017 里不存在比如 v143 對(duì)應(yīng) VS2022VS2017 里默認(rèn)只有 v141。第三類(lèi)是組件缺失機(jī)器上沒(méi)裝 C 桌面開(kāi)發(fā)工作負(fù)載。第四類(lèi)是權(quán)限問(wèn)題文件在只讀目錄或被進(jìn)程占用。我的排查習(xí)慣分三層先用文本編輯器打開(kāi) vcxproj檢查 XML 是否正常重點(diǎn)看Project根節(jié)點(diǎn)有沒(méi)有完整的命名空間Import路徑是不是指向了$(VCTargetsPath)。再看PlatformToolset節(jié)點(diǎn)確認(rèn)工具集版本和當(dāng)前 VS 匹配。最后打開(kāi) Visual Studio Installer 的修改頁(yè)確認(rèn) C 相關(guān)組件確實(shí)裝上了。如果是離線(xiàn)環(huán)境用離線(xiàn)安裝包補(bǔ)裝對(duì)應(yīng)組件即可。5.3 命令行構(gòu)建失敗但 IDE 構(gòu)建成功差在哪這種陰陽(yáng)差異通常不是 devenv 本身的問(wèn)題而是你的命令行環(huán)境少了 IDE 自動(dòng)注入的變量。比如你是從普通 cmd 里直接敲 devenv 構(gòu)建沒(méi)有調(diào)用 vcvarsall.bat那 cl.exe 可能找得到但 INCLUDE 和 LIB 不全編譯器報(bào)找不到頭文件。VS2017 的 IDE 會(huì)自己定位到 VC 工具集但命令行宿主進(jìn)程啟動(dòng)時(shí)還是依賴(lài)一組完整環(huán)境。最穩(wěn)妥的做法是用 Developer Command Prompt 來(lái)跑 devenv 命令或者在腳本里先調(diào)用 vcvarsall.bat 再執(zhí)行構(gòu)建。還有一個(gè)隱蔽點(diǎn)如果 vcxproj 里的配置名寫(xiě)的是Debug|x64而你只寫(xiě)了devenv /Build Debug沒(méi)有指定平臺(tái)devenv 可能因?yàn)檎也坏酵耆ヅ涞钠脚_(tái)配置而靜默跳過(guò)構(gòu)建。建議把/ProjectConfig Debug|x64完整寫(xiě)出來(lái)減少歧義。5.4 devenv 構(gòu)建產(chǎn)物和 msbuild 不一致的經(jīng)典問(wèn)題我在實(shí)際項(xiàng)目里遇到過(guò)好幾次用 devenv /Build 編出來(lái)的 exe 運(yùn)行正常用 msbuild 編出來(lái)的卻崩潰或找不到 DLL。對(duì)比之后發(fā)現(xiàn)原因大多是兩種構(gòu)建方式執(zhí)行時(shí)的環(huán)境變量、屬性繼承順序不同或者 msbuild 調(diào)用前沒(méi)有初始化 vcvarsall。舉個(gè)例子某些第三方庫(kù)的頭文件搜索路徑是在系統(tǒng)環(huán)境變量里追加的如果 msbuild 在干凈環(huán)境里跑這些路徑丟失編譯產(chǎn)物自然就不對(duì)。處理辦法是讓兩種構(gòu)建盡量走同一套環(huán)境先在 Developer Command Prompt 里初始化 vcvarsall再執(zhí)行 msbuild。如果用的還是同一份 vcxproj沒(méi)有額外屬性覆蓋產(chǎn)物應(yīng)該是一致的。如果仍有差異那就該懷疑是不是有 IDE 擴(kuò)展在 devenv 宿主里偷偷改了構(gòu)建參數(shù)這時(shí)候再考慮換用 devenv /Build 保持一致性。5.5 隱藏技巧用 /Log 抓取 devenv 完整日志VS2017 的 devenv 支持/Log參數(shù)可以把整個(gè)加載和構(gòu)建過(guò)程輸出到一個(gè) XML 文件。遇到devenv 接住 vcxproj 之后行為詭異的問(wèn)題比如某個(gè)屬性沒(méi)生效、擴(kuò)展包加載失敗直接加一句devenv MyDemo.vcxproj /Build Debug /Log D:\logs\devenv.log然后用文本編輯器打開(kāi)日志搜索Error、Warning、Load關(guān)鍵詞定位速度會(huì)快很多。這個(gè)技巧在很多官方文檔里只是一句帶過(guò)但實(shí)際用起來(lái)非常管用。有一次我排查一個(gè)第三方擴(kuò)展在構(gòu)建時(shí)注入錯(cuò)誤配置的問(wèn)題就是靠這條日志找到的。我個(gè)人在這些年的實(shí)際使用中最大的體會(huì)是不要把 devenv 和 msbuild 當(dāng)成兩個(gè)互相不認(rèn)識(shí)的工具。devenv 能接受 .vcxproj靠的是 Visual Studio 2010 之后項(xiàng)目系統(tǒng)整體遷移到 MSBuild 之上devenv 本身就帶著 MSBuild 引擎。你把項(xiàng)目文件交給它它背后做的第一件事就是按注冊(cè)表映射找匹配的項(xiàng)目工廠(chǎng)再讓 MSBuild 引擎去消化 XML 里的構(gòu)建意圖。理解了這條鏈路以后再遇到文件關(guān)聯(lián)變了命令行項(xiàng)目打不開(kāi)IDE 和命令行構(gòu)建結(jié)果不一樣這類(lèi)問(wèn)題你就不是瞎猜而是知道該往哪個(gè)方向查了。順便說(shuō)一句VS2017 里如果遇到 vcxproj 加載異常第一反應(yīng)不應(yīng)該是重裝而是先看 ActivityLog 和平臺(tái)工具集版本大部分問(wèn)題都在這里。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
在线只有精品| 超碰97综合网| 一区二区精品更新提醒| 久久久无码av精| 久久97| 神马久久啊啊| 精品欧美乱码久| 色哟哟1区2区| 欧美日韩国第一区| 玖玖色综合| 99久久精品国产系列| 日韩在线一区二区| 九色 人妻 大香蕉| 伊人久久综合影院| 五月天啪啪| 老熟妇综合| 东京热一区二区中文字幕| 国产女人高潮视频| 91欧美经典| 狠狠婷婷亚洲中文综合久久| 亚洲综合嫩| 色婷婷综合网站| 中文字幕在线免费观看2| 97人肏| 97天堂| 国产美女在线精品免费看| 中文字幕精品丝袜| 熟女人妇一区二区三区| 91成人精品在线播放| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 99国产在线绯色一区| 色婷婷狠狠| 免费强奸av| 中国大陆国产高清AⅤ毛片| 国内毛片热久久思思热| 欧美精品精品一区二区| 亚洲天天做日日做天天谢日日 | 高清不卡一二三区视频......| 婷色五月天| 久久久久久久久久久免费精品| 一区,二区,三区视频| 精品国产乱码久久久久久久久1| 国产成人无码高清| 一区二区三区精品黑丝白丝酒店对鸡| 天天干少妇| www.夜夜| 欧美天天拍| 美女诱惑在线一区| 欧美日韩在线小说| 免费一二区| 20cm女自慰在线日韩欧美| 丰满人妻一区二区三区免费| 91骚熟女| 免费一级a毛片久久久久久鸭绿欲 国产精品亚洲天堂网址 | 91丝袜美女视频| 欧美高清91| 97se亚洲综合自| 综合欧美亚洲| 日本操逼二区| 神马午夜久久久| 麻豆国产成人精品| 久久久月天| 青青草久草| 国产精品久久天天干| 亚洲欧美精品国产一区二区| 日本在线视频导航| 嗯~啊~快点 死我视频| 亚洲色图自拍| 92久久| 中文字幕一区二区在线日韩精品| 丝袜美腿诱惑亚洲欧美视频在线观看| julia在线观看久久| 2019午夜福利视频| 免费精品国偷自产在线在线 | 超碰在线综合97| 91综合网在线| 国产 无码 一区二区| 丰满人妻一区二区三区| 欧美亚洲手机在线| 国产99热| 国产熟女精品区| 亚洲九九视频| 国产又操| 99啪啪| 国产操操日韩三级黄| 日韩在线视频1234| 久草资源在线| 色色激情五月天| 91麻豆天美国产| 人人操超碰在线| 久久天天艹| 69精品人人人人| AV99热18这里只有精品| 日本熟妇自慰性高潮一区二区三区| 九九九九精品视频| 亚洲欧美国产成人综合不卡| 99九九久久| 校园春色亚洲色图| 成人精品在线观看| 人人操人人操人妻人| 欧美不卡在线一区二区| 99久久com免费视频′| 久久99干一本高清| 亚洲色图欧美视频| 超碰欧美在线欧美| 精品欧美老熟女一二区| 99在线免费视频| 综合97亚洲| 亚爽爽爽爽爽爽爽爽| 老女人91| 成人午夜高潮av猛片| 亚洲色啪| 3P丝袜熟女 色综合| 国产精品久久久久久无码红治院| 久久久久密| 96国产精品| 性爱Av免费| 国产亚洲色婷婷99精品91| 这里只有精品久久| 欧亚 另类 久| 亚洲色诱惑| 97超碰欧美手机在线| 大香蕉强奸乱伦| 日韩欧美天天爽爽爽天天爽爽| 亚洲成a人v欧美综合天堂下载 | 操迟操逼在巾线Fre看| 亚洲高清视频在线观看| 国产特级毛片AAAAAA高潮流水 | 97操97色| 日本黄大片在线观看视频| 亚洲婷婷五月天| 啊啊啊啊免费视频| 热天堂一区二区| 人人操欧美风骚| 日韩人妻资源网| 91青青草| 91在线视频免费中出| 麻豆av一区二区| 欧美少妇熟女| 囯戸精品高潮呻吟旡码| 免费99精品国产自在在线| 大香网站| 91综合站| 91殴美大片| 变态乱伦伪娘灌肠一区二区| 日韩黄色小说| 久久人妻丝袜一区二区三| 97九色| 啊啊啊啊啊操我视频| 岛国A V在线免费看| 久草男人天堂| 免费一级视频特黄色大片| 欧美日韩亚洲天堂| 九九拍拍精品视频在线播放| 成人福利视频网| 久久精品—区二区三区内射| 色综合久久夜色精品国产天堂| 国产日韩欧美亚洲精品95| 91精品国| 射丝袜高跟鞋99| 第一高清av中文字幕| 久久婷婷成人综合色怡春院| 欧美大片一区二区三区| 婷婷六月色| 欧美十八禁导航成人| 怡红院久久老司机| 屌妞视频久久久久久久久久久久| 99精品在线观看| 精品日韩人妻视频| 91N综合网| 亚洲永久永久永久永久一级一级一级精品| 无码自拍SM| 草草电影院| 欧美综合自拍亚洲综合图| 高清肉丝中文无码| 香蕉一区二区三区在线视频| 色婷婷综合网站| 亚洲AV成人无码一二三久久| 成人一二三区| 啊啊啊啊在线播放| 超碰综合色| 熟妇高潮一区二区免费视频| 欧美精品1区2区3区| 中国国产精品一区视频| 欧美日本一区二区a人| 中国熟女老妇仑乱一区二区三区| 中文字幕蜜乳av| 中文字幕伊人| 色狠狠综合噜一二三区| 日韩久久三区| 婷婷亚洲色| 夜嗨影院| 中国一区二区亚洲人妻| 手机在线免费看的av| 淫淫综合网| 呻吟 欧美 日本 中出| 免费人人搞97| 中文字幕人成乱码熟女香港| 人妻天天爽夜夜爽2| 午夜欧美J进J出白浆流出久久久 | www亚洲免费| 亚洲国产成人精品女人久久久| 日韩一级二级三级免费看完整版国语版 | www.99在线| 国产精品视频一区二区三区八戒| 国产精品美女久久久久AⅤ国产馆| 另类图片综合| 污色区网站| 特色a在线上| 亚洲欧美国产精品久久久久久久| 久久久久久加勒比| 国际精品久久久| 玖色av| 日本天天干天天日一区| www.成人无码| 天天综合-91入口| 蜜汁欧美| 91精品人妻偷情| 老熟妇乱轮| 国产无码成人无码| 成人免费视瓶| 久操网线| www.国产高潮精品| 欧美99| 五月综合色| 亚洲有码 欧美精品| 中文字幕日韩人妻视频一区二区三区| 国产丰满少妇久久久精品影院| 97亚洲综合电影| 婷婷六月色| 九九九九九九九精品视频| 免费观看欧美日韩操逼视频| 激情综合av| 天天日天天屌天天操| 97爱| 欧美亚洲自拍另类人妻| 成人性爱av| jizzjizz欧美| 欧美视频在线第3页| 后入 亚洲 美女 射| 国产超碰在线一区| 9.1小视频| 国产精品成人AV片免费看网站| 免费观看性欧美一级| 韩日性爱av| 色色激情| 热久久99999| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 女生自91网站| …中文字幕亚洲乱,97人妻无码费视…| 一二三卡欧美日韩人妻免费精品| 香蕉99秘 一区精品蜜桃臀| 色五月av| 色综合久久888| 精品国产一区二区三区久久久蜜臀 | 欧美性夜| 在线观看日韩av不卡| 骚货人妻偷情自拍在线视频| 加勒比五月天| 精品久久无码午夜福利| 久久久久9| 嫩草伊人久久精品| 色香欲综合| 成人乱人伦一区二区| 色999;丁香五月| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 啊啊啊啊啊啊啊在线| 人妻少妇精品久久久久久| www久久国产精品| 激情四射五月天| 97色色,97综合| 久久精品国产精品一区| 久久五月综合| 欧美偷| 性爱视频无打码在线观看| 欧美国产日韩清纯唯美| 91爱啪| 中文字幕精品资源在线| 日韩97视频| 18禁在线视频| 青青草视频爽一爽| 18禁在线视频| 亚洲欧美国产中文字幕| 亚洲国产一区二区入口| 99热这里只有是精品10| 日韩欧美午夜一区二区| 自拍欧美| 久久亚洲国产成人| 美女淫穴| 亚洲乱色熟女一区| 操学生天天| 久热大香蕉| 中精品一区二区三区| 天天躁日日躁xxxxx| 国产性感在线观看| 亚洲黄色视频在线观看视频| 欧美午夜色妇色鬼| 天天干天天舔| 一区二区三区成人| 爽 好舒服 无码刺激久久| 九九亚洲色在线观看| 亚洲一卡2卡3卡4卡乱码网站 | 免费黄色片子| 欧美 亚洲精品首页| 丁香五月天啪啪| 欧亚三区动漫| 91亚洲精品青草| 校园春色中文字幕AV| 啪啪啪东京| 精品97久久综合| www亚洲免费| 激情终合网| 欧美一级特黄淫片在线观看| 欧美高清91| 韩国一区二区精品亚洲| 亚洲性爱成人| 国产精品熟女九九九| 上海一级黄片| 97超碰国产亚洲精品| 久久XX| 久久色精品视频在线| 99久久这里只有精品| 2021国产成人精品久久| 欧美韩国你懂得在线 | 久久五月视频| 视频不卡中文字幕| 欧美成人综合| 国产精品午夜高潮呻吟久久av| 中文字幕视频二区| 九九九久久久久| 新版天堂中文资源8在线| 蜜桃AV天堂| 97日本超碰综合| 国产最新小视频在线播放下载| 色综合20p| AV中文在线| 亚洲巨爆乳一区二区三区四季网| 老女人老91妇女老热女| 五月丁香婷婷色| 亚洲91网| 天天躁狠狠躁av| 超碰在线99| 麻豆视频国产一区二区| 久久久涩| 国产精品视频播放| 精品四五区| 99re公开精品免费视频| 日韩熟女操逼| 欧美精品系列| 97一区二区三区视频| 蜜臀av一区二区三区免费观看| 亚洲啪AⅤ永久无码| 蜜臀久久99精品久久久久久成人小说| 大香蕉综合在线| 婷婷香蕉欧美在线一区二区三区| 日本视频在线观看污污污| 免费黄色片。| 尤物av网站免费在线播放| 无码人妻毛片丰满熟妇精品区| 欧美一区二区在线资源| 蜜臀国产AV中文字幕| 亚洲 一区二区 自拍| 国产又粗又大硬免费色网视频| 亚欧操逼片在线观看 | 亚洲成人帖图| 东京热不卡视频| 一区二区三区国产精产| 久草成人福利导航| 六六久久日韩不卡| 色情综合| 丁香五月天堂网| 91天堂色男人的天堂| 国产在线观看91精品一区| 无码国产精品96久久久久孕妇| 综合大香蕉美。| 久久999久| 日韩电影免费网站麻豆视频| 爽爽淫人网| 欧美成人性爱视频大全| 日韩在线观看中文字幕视频| 日韩不卡a级视频专区| 欧美成人A天堂片在线观看| 久偷拍欧美日韩三区| 国产女人高潮视频| 天美国产三级传媒| 视频在线观看一二三区| 91在线免费观看处女| 欧美极品女人的天堂| 激情综合亚洲| 老色69| 91美女丝袜诱惑视频| 99视频内射三四| 97色在线| 久久综合乱子伦国产免费| 美腿色图| 夜夜嗨绯色| 婷婷另类小说| 色欲久久99精品久久| 九久久九九久视频| 亚洲在线| 欧美日韩国产另类综合| 午夜影美女日鸡鸡天天视频国产| 日韩欧美字幕亚洲一区二区| 大香蕉黄色一区| 五月天开心网| 超碰1024久久| 超碰久草| 狠狠操,使劲操| 性影在线视频| 亚洲高潮少妇| 久久天天躁日日躁狠狠躁| 人人搡人人肉久久精品| 99re久久| 免费一级精品啪啪视频| 99久久久99久久91熟女| 日韩激情视频| 色噜噜日韩精品| 亚洲情色欧美| 高跟丝袜AV专区国产| 欧美有码激情视频一区二区三区| 97在线观视频免费观看| 五月天亚洲色图| 国产成年精品高清在线观看91| 午夜无码精品免费看性色| 午夜天堂精品久久久久91| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 日韩情色一区二区| 午夜精品五区| 国产精品一区人妻精品阁在线| 少妇500双飞99| 综合熟妇一区二区三区| 亚洲?V无码专区在线电影| 婷婷久久五月| 98福利在线视频| 超碰色综合| 国产精点久久久成人| 亚洲成人一二三区| 一二三区视频在线观看| 国产精品无码久久久久2025| 九九九九88| 激情婷婷丁香网| 欧美爆乳精品一区二区| 大香蕉伊人色偷偷在线| 99热线麻豆 | 操国产逼| 欧美图片偷拍| 国产91丝袜 在线播放| 特级丰满少妇一级AAAA爱毛片| 欧美一区二区在线资源| 欧美+日产+中文| 久久久亚洲欧美综合| 久久理论字幕视频| 大香蕉综合网| 精品久久一区二区三区四区五区| 9997se| AA级电影三区| 第四色亚洲色图| 丝袜足交视频| 超碰人人妻| 天天影视综合色| 欧美强奸乱能| 校园春色宗合网| 中文字幕精品免费一区二区| 97人亚洲综合字幕| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 手机看av网站在线看| 少妇色综合| 中国一级特黄大片护士| 久久宗合亚洲| 久久亚洲AV无码专区国产精品| 极品久久久久久久久久久久久久| 久久久久免费看少妇A片特黄| 一区二区三区日韩欧美 | 国产性爱乱伦AV| 国产精品不卡一区二区三区| 日韩免费大片一级播放| 97射欧美| 亚洲黑丝在线| 色综合av综合久久| 色香在线| 手机在线观看不卡无码av| 天天综合网~91综合网| 亚洲综合中文字幕有码| 97人人夜| 日韩情色视频| 欧美日韩亚洲一区二区在线观看| 婷婷探花久久精品一区| 视频二区美腿丝袜制服人妻欧美| 男插女青青影院| 91中文精品日韩欧美在线| 亚洲第一精品在线视频| 校园春色 亚洲| 欧美三级不卡| 免费黄色片。| 另类欧美综合| 蜜臀久久99精品| 在线观看精品国产免费| 男人的天堂va在线| 少妇与黑人高潮在线| 久久av一级av少妇av高潮| 91蜜桃传媒精品久久久一区二区| 中文一区二区婷婷视频| 亚洲成人av电影在线| 九九九不卡| 精品久久在线区一区| 久久riav中文精品| 久久岛国| 大香蕉男人的天堂| www.99热| 九色精品视频导航1| 久夜操| 女生自91网站| 天天弄天天操| 午夜精品五区| 51国产午夜精品视频| 夜夜嗨TV| 亚熟hd视频在线| 日韩有码一区三区| 强奸乱伦av电影| 国产操逼网站亚洲一级黄色| 2020天天色综合| 色盈盈影院| 色色色综合网| 亚洲无码?第一页| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 日韩大香蕉精品在线视频| 白嫩嫩一区| 国产精品久久久三级无码| 中文字幕美女91| 91熟女网| 夜夜爽夜夜摸夜夜操免费视频| 台湾佬中文娱乐自偷自拍| 九九无码视频| 久久久亚洲欧美综合| 综合伊人网12色| 中文字幕乱妇免费视频| 国产三级中文字幕粉嫩 | 亚洲国产精品久久AV| 91中出在线| 精人妻无码一区二区三区伊人直播 | 啊啊啊骚| 亚洲蜜臀精品视频久久| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 五月丁香成人网| 日韩欧美中文日韩欧美色| 国产精品成久久久久午夜午夜| 亚洲天堂资源在线| 东京热毛片调教| 97欧美色综合| 风骚少妇视频中文字幕| h色99999| 欧美大色交| 视频在线中文字幕| 狠狠干妹子| 午夜精品人妻二区三区| 天天干人人看综合| 欧美日韩亚洲天堂| 国产91 丝袜在线播放00-百度| 日1区2区3区2020| 欧美性第1页| aV中文麻| 亚洲另类天堂| 9久在线视频只有精品| 中文字幕在线免费观看2| 亚洲av噜噜噜噜噜噜| 东北少妇高潮zzzz| 人妻一二三区| 黄色AAAAA欧美| 欧美日韩国产高清在线一二三区| 日本在线播放不卡一区| 久9热| 中文字幕一区av| 丰满翘臀美女影院视频| 久草综合视频| 日本五区不卡| 五十路熟女人妻一区二区三区四区五| 人妻一区二区三区四区视频| 日本成人A片免费看| 国产精品无码av| 丁香五月天激情网站| 亚洲日韩一区电影| 免费人人搞97| 午夜精品久久久久久久99| 东京热,男人的天堂| 91精片| 免费1级a做爰片观看| 精品区国产区一区二区三区| 狠狠欧美| 青青草成人视频在线观看二区| 91精品操美女| 中文乱码字字幕在线第5页| 懂色av色欲av蜜臀av| 亚洲精品成人| 久久99手机免费视频| 国产久9| 国产亚洲色婷婷久久99精品91 - 百度| 亚洲av国产av综合av卡| 国产大学生高潮在线播放| 九九九九九九九九九九九免费国产| 日韩啪啪啪视频| 欧美伊人电影| 国产精品无码av嫩草| 性吧在线视频| 美女骚尻视频| 狠狠久久手机视频精品| 欧美日韩中文亚洲v在线综合| 日韩伦理久 久久 清纯| 97伊人超碰| 日本操逼视频不卡直接放| 91操操| 欧美色自拍| 免费成人自拍视频在线| JULIA一区二区三区在线播放| 美女97超碰| 亚洲欧美综合网| 国产精品无码久久久久2028| 精品无码一区二区| 嗯嗯啊啊啊好爽| 性色av蜜臀av色欲aV| 欧美色图片91| 亚洲有码视频二区| 99久视频| 久久9免费视频| 久久久久人妻二区精品叶可怜| 插入综合网| 日日躁天天躁狠狠躁| 国产综合网站在线播放| 91黑丝美女| 成年人网站在线免费观看| 久久久久成人蜜桃精品| 深夜激情| 午夜精品视频777| 区自美91| 在线视频五十市| 天天射夜夜操| 天天透伊人| 大香蕉78| 97中文天堂| 老熟女91| 国产欧美美女免费观看视频| 人人妻人人玩人人澡人人爽| 91欧美| 另类欧美色| 婷婷丁香六月| 日韩一二三区| 日本有码影片下载| 黄片免费日韩| 97 国产一区| 天天谢天天干| 日韩欧美天天爽爽爽天天爽爽| 能在线播放的国产三级| 精国久久一区二区三区98| 国产AV毛片| 天堂精品| 五月丁香激情综合| 97超碰中文在线| 色呦呦、国产精品| 操www| 天天拍天| 午夜精品久久99蜜桃的功能章节| 人摸人人操人| 操逼无码一区| 日本十八禁免费看污网站| 男人a天堂手机在线版| 亚洲国产综合久久天堂| 超碰日韩人妻| 午夜天堂网| 久久精品国产亚洲AV高清演员表| 天天综合影院91| 国产亚洲精品美女久久久| 久久精品夜色国产亚洲AV| 亚乱色| 俺去啦自拍| 啊啊啊啊嗯嗯嗯用力好爽 | 欧美内射少妇| 日本一区视频在线观看| 99日免费视频中文字幕| 免费看日产一区二区三区| 日本Suv精品一区二区| 女人妻一区| 岛国大片在线观看网站入口| 久久久免费高清中文视频| 亚洲综合网电影91| 超碰人人操97碰| 亚州五月| 99热超碰| 东亚亚洲无码高清| 男人午夜天堂| 亚洲爱爱视频一区二区| 99热在线观看| 精品无码不卡视频| 亚洲男人天堂2017| 抽插爽| 日本免费亚洲欧美| 国产v片在线免费观看| 丰满少妇精品一区二区| 熟妇熟女一区二三区| 五月天黄色激情视频| 成人五月天丁香激情综合| 999九九精品| 夜夜爽爽爽| 一本一道vs波多野结衣| 在线视频 亚洲精品| 亚洲熟妇综合久久久久久| 99中出在线| 久久香蕉综合一本到3atv| 亲子敌伦对白在线播放| 不卡六六在线91| wwe 天天干.com| 久久久激情| 国产免a费看黄片在线| 97天堂| 久久有码视频| 久久超碰av在线| 久久偷拍人| 国产伦精品一区二区三区视频女| 欧美日韩国产中文精品字幕自在自线| 女性喷水高潮在线观看| 精品九区| 四虎精品永久在线观看| 久久人妻无码毛片A片麻豆| 亚洲男人天堂网久久| 激情五月婷婷| 婷婷丁香熟妇综合网| 国产偷拍自拍在线视频| 亚洲天堂一区二区久久| 国产精品高潮呻吟av久久4虎| 国产精品成人午夜福利| 可乐操亚洲蜜911| 加勒比综合a∨| 性爱AV天堂| 啊啊啊啊啊好大好舒服想要| 色盈盈影院| 亭亭丁香激情| 久久9久9久99久9久9| 96AV精品| 97人肏| 91在线欧色| 亚洲有码 视频一区| 日韩精品99999| 开心激情站| 亚洲色图大香| 亚洲情色第一页| 天天综合网国产| 95精品在线| 99re这里只有精品中心播放 | 精品美女人人干| Aa东京男人的天堂| 亚洲s色图| 日韩专区久久久| 欧美后入式| 国内精品99999| 男人天堂新| 久久一二三四| 女欧美一区二三区| 成人无码在线超碰网| 日韩精品一区二区日韩| 日逼国产| 久久色情| 99久久无色码| 九草在线大香蕉| 职场同事知名国产国产精品久久欧美日韩| 大屁股熟女一区二区三区| 亚洲人妻久久久| 男人的天堂视频精品乱在线| 日本一二区不卡| 亚洲97成人在线观看| 可以在线观看的黄色网址| 日本熟妇人妻中出视频| 色婷婷亚洲婷婷| 亚洲最大黄网| 精品中文一区二区| 精品人妻一区二区三区视频在线| 97超碰欧美| 日韩在线性爱免费视频| 97精品综合久久| 国产人伦精品一区二区三区| 91 综合 色| 日韩有码中文字幕女同性恋| 三级精品三级在线观看| 无码聚合| 日韩丝袜人妻AV| 天天摸天天舔天天操| 校园春色AV天堂| 欧美日韩大黄片| 人人扣人人操| 免费久久9999| 91美| 中国zzijzzijzzwww精品| 99热在线播放| 亚洲天堂美臀在线| 超碰97护士| 懂色AV蜜臀无码精品APP| 久草久热| 欧美天天影院| 免费观看国产不卡av| 精品久久久无码| 欧美高潮| 久久午夜鲁丝片| 九九碰九九爱97超碰| 欧美大片天天看| 日韩在线观看三级电影| 国产精品久久伊人| 新97国产超碰| 亚洲av性爱电影| 巨爆乳肉感一区二区三区竹菊影视| 欧美黑人与女人91~| 亚洲色图A| 久久久麻豆精品| 九九夜精品九九在线| 夜夜躁狠狠躁日日躁av| 黄色片大香蕉| 中文字幕文字幕无码一区二区三区电影99| 国产精品96| 婷婷激情综合网| 91熟女.com| 少妇人妻太紧太深av| 久久大香蕉手机高清| 精品人妻一区二区免费看| 少妇干B| 久久久99999久网站| 日本性感人妻91| 97九色人妻| 91精品人妻一区二区三区蜜桃| 日亚韩精品视频二区三| 欧亚揄拍偷拍精品视频| 天天色,天天干,天天干| 中文在线久久字幕| 18禁在线视频| 欧美久久毛片基地| 很很操在线| 内射日韩大臀美女| 天天综合网日韩| 精品一区二区3区| 亚洲色图A| 亚洲综合色网| 91性感在线| 日本色婷婷| 欧美性性性| 91黑丝在线播放| 酒色综合网| 精品久久久久久亚洲| 熟妇色99| 91亚洲黑人| 97超碰精品| 精品国产91久久久久久一区黄无| 亚洲 欧美 日韩 国产一区二区 | 97精品| 极品白嫩福利在线| 日本中文熟女视频| 97久久久精品| 综合久久六月久久婷婷| 国产丝袜高跟美女av免费观看| 91动漫操逼视频| 97久久综合网| 夜夜肏2021| J?P?NESEHD熟女熟妇伦| 日韩9999| 国人欧美精品一区二区| 99热这里都是精品| 亚州操操穴网| 精品国产91内射久久| 欧美色日| 五月丁香婷婷啪啪| 九热中文字幕| 一级黄碟在线观看| 日韩一性一交一A片俄罗斯| 日本精品一区二区三| 九九热视频在线观看| 97视频免费在线观看| 亚洲少妇在线影音| 欧美很很操视频| 日韩一级二级三级免费看完整版| 国产午夜视频| 91色久| 欧美一级AAAAAAA| 青青草久久在线| 午夜人妻精品综合在线| 国产美女销魂在线观看不卡| 精品久操| 97欧美精品综合| 91操人| 国产成人亚洲精品无| 91精产一区二区三区| 日本福利社| 在线播放一级无码视频| 欧美—性—交—色| 国产精品久久久久久久久久久久久久久久久久 | 久久这里是精品| 夜夜夜爽www精品视频| 亚洲综合网图| 国产精品一区二区黄片| 精品无码一区二区三区| 久久香蕉国产线看观看亚洲女人 | 精品四五区| 免费在线观看国内色片网站网址| 亚洲欧美日韩中文播放| 97操97干| 熟女高潮合集-永久久久-成人AV | 韩国女主播青草福利视频| 久久精品店| 大二网站亚洲| 天天综合网在线91| 99re在线视频国产| 一区二区三区男女操逼黄色小电影| 干婷婷综合网| 精品国产91av一区二区三区| 一区二区高清视频| 成人草草视频| 超碰97在线中文| 情色av电影| 麻豆久久视频在线地址| 色99视频| 国产树林里野战在线看| 欧美日韩日产免费网站看| 日韩无码一级黄色av片| 久久国产精品m码| 人妻天天爽夜夜爽2| 先锋音影AV| 国产男女无套97| 欧美久久九九| 这里只有精品视频| 日本 欧美 国产一区| 乱欲一区二区| 日韩亚洲精品一区二区| 浓厚中出中文字幕在线| 国产毛片毛片4p懂色| 夜色综合| 国产97在线 | 亚洲| 国内一级精品| 九九九久久久W精品| 偷拍新久久| 亚洲自拍青操视频| 亚洲欧美91√| 久久精品日韩专区免费观看| 中文一区二区| 亚洲怡春院| 日本 情色 1区2区3区| 亚洲青青草| 久久精品高清无码一区| 蜜臀久久精品久久久久视频| 风骚少妇视频中文字幕| 亚欧美综合网。| 色香伊人| 日本国产二线女色| 5252色欧美在线男人的天堂| 人妻激情视频| 夜夜夜夜久久久久| 久夜视频| 国产精品一区二区a| 国产色综合亚洲色综合吹潮| 翔田千里AⅤHD无码| 黄色AAAAAAAAAAA大片| 玖玖资源综合在线视频| 欧美综合区| 综合久久99| 99国产精品人妻人伦| 黄总AV色图| 色男人色天堂东京热| 少妇蹲下买菜露大唇0| 老司机香蕉久久久久| 国产视频人人网| 国产精品福利视频播放| 久久毛卡| 97久久超碰| 殴美牲| 黄呦呦在线| 蜜臀va69| 日本欧美中文字幕| 老司机天天操| 大地资源在线观看中文第二页| 色婷婷成人| a男人的天堂| 亚洲性图91| 凌辱美少妇久久aV| 超碰在线欧美性爱激情| 国产男人又猛又粗又爽| 激情六月天| 熟妇精品juliaannAV| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 5月婷婷6月六月丁香| 99久久com免费视频′| 亚洲色香| 久久久夜夜夜| 九月丁香婷婷色| 婷婷久草| 狠狠亚洲| 天天日天天干少妇日| 曰本人妻人人澡人人夹| 久久久久久午夜男人的天堂| 欧美熟妇亚洲版| 天天拍夜夜| 干干干天天| 天美av在线观看| 人妻无码视频一区二区三区久久| 精品人妻一区二区免费蜜桃视频| AAAAAAAAA黄片| 淫淫总合网| 色九色久| 中文字幕,人妻,日韩| 九九九九九九九精品视频| 骚人妻少妇视频| 搡老女人911熟妇老熟女| www.av在线观看| 中出789在线视频| av中亚| 综合色99| 91操人| 国产传媒午夜理伦精品| 国产一区96在线| 91日韩网站| 婷婷视频在线免费观看| 久久鲁夜| 少妇一级无码精品| 久久婷婷一区二| 婷婷国产精品一区二区| 国产精品成人蜜臀AV在线| 久久男人网| JIZZJIZZ亚洲女人被躁| 夜夜爽爽爽| 久久久一区二区三区麻豆| 色综合av男人天堂| 日韩78m视频| 人人干人人操人人爱| 999日韩中文精品观看视频。| 欧美色综合网| 成人网址在线观看| 超碰9 7女人| 人人射人人操人人摸| 东北操逼| 亚洲少妇综合在线播放| 天美传媒av在线| 日韩中文字幕人妻视频| 人妻在线大香蕉| 久久免费老司机精品| 亚洲综合在线第一页| 99免费视频| 日韩情色一区二区| 蜜桃久久综合视频| 97AV在线观看| 国产高清1234区| 九九AV| 99re3这里只有精品| 99无码狠狠久久| www四虎| 欧州一区二区三区四区| 97国伦国色| 欧美性爱18观看| 亚州色图欧美| 约操熟妇| 中日韩久久久免费看| 凹凸视频特色日本特黄| 国产精品丝袜在线| 97久久精品亚洲| 人人操人人摸人人骑| 精品人妻一区二区免费蜜桃| 无码高清少妇久久| 国产天美传媒精品| 激情视屏国产乱伦强奸| 老熟女综合网| 欧美超碰9798| 亚洲乱色熟女一区| 日韩精品大香蕉伊人在线| 尤物国产一区在线观看| 精品人妻久久久| 大香蕉97久久| 黄色片A级一区二区三区| 婷婷五月天无码 | 中国91AV| 国产黄a三级三级三级av在线看| 久久久久久亚洲Av无码精| 国产视频第2页| 色99在线| 我要去看2个日本美女.com曹逼 | 亚洲午夜福利在线影院| 中文字幕人妻丝袜乱一区三区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 97综合| 美女黑人91神马| 久久99综合| 91性高朝久久久久久久久| 午夜精品久久久久久久99| 日韩三级视频一区二区三区| 亚洲密乳AV| 青青草原香蕉日本Ap| 免费看污网站| 国产懂色精品国产av| 亚洲精品97| 青青草久草AV| 久久久久久性爱片| 乱伦Av网| 亚洲欧美首页| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 亚洲āv网址在线观看| 啊嗯嗯啊好大好爽| 99热这里只有精| 久久久久九九九| 国产在线综合福利网站| 亚洲第一页综合在线| 97欧美精品综合| 久久综合激情| 二男一女成人A片| 超碰人妻久久| 91 国产丝袜在线播放-百度| 18一区二区三区| 免费看日产一区二区三区| 性饥渴少妇av无码毛片| 欧美高清91| 无码男人天堂| 4141514逼喷水三级片| 亚洲综合婷婷| 性影在线视频| A级国产欧美激情在线| 91热| 激情婷婷丁香| 亚洲精品国产av天美传媒| 老女人爆菊| 色色丁香| 青青操轻轻| 超碰人妻天天干| 日韩无码视频黄色| 加勒比海色香蕉婷婷| 色嗨嗨在线| 久久久久久人妻| 玖玖爱免费观看视频| 日韩高清黄片| 国产一国产一级毛片古装| 亚洲天堂久久| 日韩中文9| 亚州综合AⅤ| 日本一区99| 91在线免费观看处女| 久久五月份| 婷婷色色五月天| 9999免费精彩视频| 日本操BAV| 国产精品自在自拍视频| 久久直播国产| 亚洲欧洲综合成人av一区| 乱伦一二三区| 欧美大波激情xxxx| 国产辣妈在线视频福利| 国产综合色精品在线观看| 97国产超碰| 91人人| 欧美色宗合| 黄片www视频免费| 久久久久九九九| 欧美色图色综合| 欧美91精品国产自产| 人妻少妇久久中文字幕一区二区 麻豆| 欧美色视| 一起草三级AV电影在线观看| 一区二区乱码福利| 欧美日韩大香蕉| 99亚洲精品| 白天啪啪晚上啪啪视频| japan日本高清乱xxxx| 欧美视频一区二区在线| 国产成人在线观看综合|