Visual Studio 2023中C++項目升級指南_第1頁
Visual Studio 2023中C++項目升級指南_第2頁
Visual Studio 2023中C++項目升級指南_第3頁
Visual Studio 2023中C++項目升級指南_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第第頁VisualStudio2023中C++項目升級指南ccurredduringXMLparsing:File:D:\Sample\ConsoleApp\ConsoleApp.vcprojLine:28Column:5ErrorMessage:Systemerror:-2147154677.Thefile'D:\Sample\ConsoleApp\ConsoleApp.vcproj'hasfailedtoload.

這是因為轉(zhuǎn)換過程需要那些平臺的屬性值才能成功進行。你可以通過查看以下目錄獲悉已安裝了哪些平臺:%ProgramFiles%\MSBuild\Microsoft.cpp\V4.0\Platforms(或者查看x64平臺下的%ProgramFiles(x86)%\MSBuild\Microsoft.cpp\V4.0\Platforms)。

3)如果可能的話,使用本地的多定向支持來對VisualStudio2023工具集進行構(gòu)建

在VisualStudio2023中,我們新增了本地的多定向支持(Multi-Targeting),通過使用新的基于MSBuild的項目系統(tǒng),你可以在VisualStudio2023的IDE中為VisualStudio2023工具集構(gòu)建目標(biāo)。關(guān)于這一特性,你可以看看這篇博客。我們建議用戶,特別是擁有大型代碼庫的用戶,在升級時先利用這一特性在VisualStudio2023中構(gòu)建VisualStudio2023工具集的程序。這樣,當(dāng)你在升級過程中碰到問題,就可以把那些跟項目系統(tǒng)或構(gòu)建系統(tǒng)相關(guān)的問題與工具的問題區(qū)別開來。這將會讓你更加平滑地升級到VisualStudio2023工具集。

一旦升級完成,屬性表文件(.VisualStudioprops)就會被轉(zhuǎn)換成新的格式(.props)。同樣,項目文件(.vcproj)也會被轉(zhuǎn)換為新的格式(.vcxproj)。值得注意的是,新的項目文件會與舊的項目文件同時生成。在轉(zhuǎn)換過程中還產(chǎn)生了一種新的文件類型(.filter.vcxproj),該過濾器文件包含用來顯示解決方案的資源管理器文件夾信息。該過濾器信息原本是項目文件的一部分,然而這種變化是必要的,因為只要項目文件發(fā)生變化,MSBuild就會請求重新構(gòu)建。通過在一個單獨的文件中保存過濾器信息,就可以在避免重新構(gòu)建整個項目的情況下修改過濾器。

注意:升級過程不會轉(zhuǎn)換.user文件。因此,你的調(diào)試和部署設(shè)置在轉(zhuǎn)換后將不會被保留。

在VisualStudio2023中,一個新的命令行升級工具VCUpgrade.exe也被加入了進來。此命令行工具,適合在只有一個項目的情況下進行升級,因為它無法把解決方案文件作為輸入,并將其解析成項目文件。VCUpgrade.exe位于$(VisualStudioInstallDir)\common7\Tools目錄下,該工具也將附帶在WinSDK的下一個版本中,這樣用戶就可以在沒有VisualStudioIDE的情況下用命令行對WinSDK中的項目文件進行升級。

升級過程中的警告

以下是轉(zhuǎn)換過程中,你可能會遇到的一些常見警告:

1)鏈接器輸出目錄

在升級時你可能會看到的一個警告是MSB8012:$(TargetPath)和鏈接器的OutputFile屬性的值不匹配:

-MSB8012:$(TargetExt)('.dll')doesnotmatchtheLinker'sOutputFilepropertyvalue'C:\foo\Debug\MFCActiveX.ocx'('.ocx')inprojectconfiguration'Debug|Win32'.Thismaycauseyourprojecttobuildincorrectly.Tocorrectthis,pleasemakesurethat$(TargetExt)propertyvaluematchesthevaluespecifiedin%(Link.OutputFile).-MSB8012:$(TargetPath)('C:\foo\Debug\MFCActiveX.dll')doesnotmatchtheLinker'sOutputFilepropertyvalue'C:\foo\Debug\MFCActiveX.ocx'('C:\foo\Debug\MFCActiveX.ocx')inprojectconfiguration'Debug|Win32'.Thismaycauseyourprojecttobuildincorrectly.Tocorrectthis,pleasemakesurethat$(TargetPath)propertyvaluematchesthevaluespecifiedin%(Link.OutputFile).

Link.OutputFile是在屬性頁中Linker-General-OutputFile這一項中定義的值。默認(rèn)情況下,它的值是$(OutDir)$(TargetName)$(TargetExt),與$(TargetPath)相同。當(dāng)我們把一個應(yīng)用程序從之前的版本轉(zhuǎn)換過來時,并沒有辦法可以很好地解析出Link.OutputFile被$(TargetName)和$(TargetExt)的值,因為不同的用戶可能用不同的方法對其進行了賦值。為了解決這一點,我們決定在轉(zhuǎn)換過程中保留Linker.OutputFile中的值。在轉(zhuǎn)換之后,$(TargetName)將默認(rèn)為$(ProjectName),$(TargetExt)將默認(rèn)為該類應(yīng)用程序的默認(rèn)擴展名:動態(tài)庫文件為.dll,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論