• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Visual Studio 2010中C++項目升級指南

    發布: 2010-3-26 11:39 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 228次 | 進入軟件測試論壇討論

    領測軟件測試網

      編輯vcxproj文件,并在第一組定義中加入以下內容:

      器v3.5“/ TargetFrameworkVersion”

      打開Visual Studio 2010的命令行,設置TargetFrameworkVersion = v3.5,然后從命令行運行devenv.exe。這將把所有C++應用的目標框架設為v3.5。

      在構建程序時傳遞/p:TargetFrameworkVersion = v3.5參數給MSBuild:MSBuild my.vcxproj /p:TargetFrameworkVersion =v3.5

      請注意,要在安裝了Visual Studio 2008的情況下才能把應用程序的定向到2.0,3.0或3.5 Framework。

      對于C#/ VB應用程序,如果目標Framework已經安裝在了計算機上,轉換過程中則不會改變目標Framework。 如果目標Framework沒有安裝,你可以選擇下載所需要的Framework或將目標Framework升級到4.0版。

      -如果在你的解決方案中混合有CSharp / VB/托管C++項目,你可能會碰到它們分別針對不同目標Framework的情況。如果被引用項目的目標Framework比引用它的項目的Framework版本還高,你可能會收到警告MSB3258:

      -The primary reference “foo, Version=x.x.xxx.xxxx, Culture=neutral, processorArchitecture=x86” has an indirect dependency on the .NET Framework assembly “mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089” which has a higher version “4.0.0.0” than exists in the current target framework. The version found in the current target framework redist list is “2.0.0.0”. By including the primary reference you may get compile and/or runtime errors.

      -你也可能如C4691這樣的警告:type referenced was expected in the unreferenced assembly ‘file’, type defined in current translation unit used instead, if the Framework version of the referencing project is higher.

      -你需要把解決方法中的所有項目設為同一個版本的Framework。

      2) 在makefile的"Output"屬性中使用引號

      如果某個項目的makefile中"Output"屬性里有引號,轉換將無法進行。解決方法是在轉換前把"Output"屬性里的引號去掉。

      

      3) $(IntDir) 和 $(OutDir)中的反斜杠。

      $(IntDir)和$(OutDir)分別對應屬性頁中的“General -> Intermediate Directories”和“General -> Output Directories”。為了統一$(IntDir)和$(OutDir)的格式,如果沒有以"\"結尾的話,轉換過程中會自動在它們的屬性值末尾追加“\”。如果末尾有“/”的話將會被刪掉。

      不過,如果$(IntDir)或$(OutDir)用在makefile或自定義生成中,Exec任務會用到它,這就可能導致構建過程中斷。

      在makefile中,如果它們以"\"結尾,nmake工具就無法評估它的值。例如,使用如下命令,

      BuildCommandLine="nmake /nologo "OUT=$(OutDir)" "OBJ=$(IntDir)""

      因為$(OutDir)和$(IntDir)末尾有“\”,nmake工具不能正確地將其展開,OUT和OBJ的值會被置為空。為了解決這個問題,你需要在屬性頁刪除$(IntDir)和$(OutDir)中的"\"。

      如果$(OutDir)或$(IntDir)被傳遞給自定義生成,包括生成事件、自定義生成工具,以及自定義生成步驟,你可能會遇到構建失敗,其原因是“\”可能被這些工具當成了轉義字符。例如,如果你有一個跟下面類似的預生成事件:

       cl /c /Fo"$(IntDir)" "$(ProjectDir)\win32.cpp"

      命令行是:cl /c /Fo"Debug\" "C:\foo\win32.cpp" instead of cl /c /Fo"Debug\\" "C:\foo\win32.cpp"

      要解決這個問題,在傳遞給/Fo的值中的添加一個額外的“\”(C/C++ -> Output Files -> Object File Name),以補償被當作轉義字符的"\"。

      4) 解決方案資源管理器界面

      在Visual Studio 2010中,解決方案資源管理器里的文件和文件夾顯示由.vcxproj.filters文件控制。如果你有名字相同但位置不同的文件夾,例如“Native\Include”和 "Include",那么在轉換后,第二個"Include"和它里面的文件將不會顯示在解決方案資源管理器中。若要解決此問題,你可以重新在解決方案資源管理器創建這個文件夾,并將相應的文件添加到文件夾中。

      5) 只讀的項目文件或目錄

      當你從一個只讀目錄中開始升級,或是對以前只讀的項目文件進行重新轉換時,都有可能碰到問題。務必確保這些目錄和文件都是可寫的,除非你能對這些文件自動進行檢查,就像在集成資源管理系統(integrated source control system)中能做到的那樣。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    44/4<1234

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>