導航:首頁 > 編程大全 > vs2012平台工具集

vs2012平台工具集

發布時間:2023-01-04 14:01:12

① Visual Studio2012編譯---項目文件包含 ToolsVersion="12.0"。此工具集可能未知或缺失。

step1:打開工程,右鍵修改工程屬性:

general屬性中的項

step2:用文本打開並修改*.vcxproj文件,應該在第回1行,將ToolsVersion="14.0"改為答ToolsVersion="4.0"。因為工程是打開的,此時vs2012提示配置改變,要reload,然後編譯。

如果工程是關閉的,則重新打開即可、編譯。

② vs2012編寫的c#窗體程序在xp上跑不了,怎麼辦

微軟為了推銷自家平台,默認配置下VS2012和VS2013編寫的應用程序只能在Vista/Win7/Win8上運行。但幸好還保留了生成XP程序的設置項。XP和Win2003的用戶還是大量存在的,我們程序軟體的發布不能不考慮他們。

1.
項目菜單->項目屬性->配置屬性->常規->平台工具集,選擇「VS2013WindowsXP(v120_xp)」;

2. 項目菜單->項目屬性->配置屬性->常規->MFC的使用,選擇在靜態庫中使用MFC;

3.
項目菜單->項目屬性->鏈接器->系統->子系統->控制台或窗口windows(根據你的項目類型選擇),第二項版本號設成5.01。

4. C/C++->代碼生成->運行庫,選擇「多線程調試(/MTd)";

5. 還需要至少帶有Update3(或4),這一點我沒有驗證,因為我直接安裝的就是帶有Update3的VS2013。

以上就OK了。缺點仍然有,例如靜態編譯的EXE比正常動態要大不少,目前我尚未試出動態編譯後在XP中能運行的方法,--不過這個不要緊,因為VS2013版本如此之高,客戶的電腦上很難自帶配有它的運行庫,你即使動態編譯,發布軟體時也還是要帶上運行庫的,只不過在多個程序時只需帶一份運行庫罷了。

另外,我在實際大項目中用上述方法,仍有出錯現象發生。以後再研究吧。一般情況下上述方法就可以了。

在網上另外發現了這個貼子,說得很詳細,包括非IDE的命令行編譯,一起貼到下面:

問題一:編譯出來的exe在xp上面運行提示「不是有效的win32應用程序」

在vs2012/2013版本裡面,其自帶的c編譯器cl.exe,若直接使用cl
a.c編譯,那麼生成出來的exe放在vista及以上版本直接運行沒有問題,但是在xp上則會出來「不是有效的win32應用程序」的出錯提示。這是因為vs2012/2013自帶的c編譯器默認情況下生成的exe會默認只支持vista及以上版本的windows系統。

解決方法:

對於使用命令行cl.exe直接編譯的方式:

先用cl a.c編譯一遍,此時會生成a.exe和a.obj兩個文件,此時,再執行 link b.obj
/subsystem:console,5.01,它會鏈接一個新的a.exe出來,此時的exe就可以在xp上運行了。相比vs2010以及以前版本的編譯器編譯,會多第二步的link過程,後面的參數也很容易理解,subsystem,5.01,此處的5.01是指的windows內核版本號,5.01表示windows
2000 with sp1,即此exe可以在win2000 sp1及以上的windows中執行。

當然,這個地方的/subsystem後面有很多參數,上面給的console,5.01是指命令行程序,如果是有GUI即有窗口的程序,改成windows,5.01即可。!!注意!!此處的5.01一定不要想當然改成5.0就變成windows
2000
不帶sp1的版本,實際上,5.0並不被vs2013的編譯所承認,會報警告不認5.0,就會按照默認的不帶5.01的方式編譯,這樣就無法在vista以下的系統中運行生成的exe了。

對於在vs2013裡面使用新建項目的方式:

右擊相應的項目,選擇「屬性」,在項目屬性頁中的「配置屬性」下面的「常規」裡面,把「平台工具集」,由「Visual Studio 2013
(v120)」改成「Visual Studio 2013 - Windows XP
(v120_xp)」,確定之後,重新生成項目即可。當然這里按這樣修改的話,就只能在winxp及以上的版本系統裡面運行了。

問題二:用vs2010/2012/2013編譯出來的exe在未安裝vc++運行庫的機器上運行時提示」未找到MSVCR120D.DLL「從而無法運行

這是個老問題了,無非就是運行庫動態編譯和靜態編譯的問題了。dll動態載入的話有個好處,它可以減少生成的exe文件的體積,但是缺點就是如果對應的系統環境變數或者exe所在的目錄裡面找不到其所需要的dll文件的話,程序就會拒絕執行。而靜態編譯就是把所有需要的庫都靜態編譯到exe文件裡面,這樣就可以在所有的系統平台上都能運行,但它也有一個缺點,就是生成的exe文件因為已經帶了部分庫的代碼,所以體積會相對動態編譯出來的exe大(具體大多少要根據庫的內容才能確定)。

解決方法:

對於直接使用cl.exe和link.exe編譯連接的方式:

直接在cl.exe編譯的時候或者在makefile裡面把編譯參數加上/MT即可。

對於在vs2013裡面使用新建項目的方式:

右擊相應的項目,選擇「屬性」,在項目屬性頁中的「配置屬性」下面的「C/C++」下面的「代碼生成」一項,由默認的「多線程調試DLL
(/MDd)」,改成「多線程 (/MT)」,確定之後,重新生成項目即可。這樣所得的exe文件就是靜態編譯了。

③ VS2010平台工具集在哪裡

vs2010版本之後支持使用之前的版本編譯,可以在 屬性->常規中找到

詳細代碼

④ 如何用vs2012編寫能在windows2000運行的程序

項目屬性裡面,找到:鏈接器>高級>所需的最低版本,輸入5.0(即win2000的版本號)
5.1表示winXP,6.0表示vista

VS2012默認使用「平台工具集」為VS2012(110)版本,這項參數可以設置為VS2012-WindowsXP(110),再配合上面一項設置,應該可以支持win2000運行了。

⑤ 如何修改vs2012的解決方案文件

今天要用VS2010打開VS2013,一直覺得VS2010到VS2012隻是界面上扁平化的改變,平台工具集有改變但很大程度上可能向上兼容。在網上搜了一些文章,其中有一篇說到一個觀點:
從VS2010開始,VS使用統一的.sln作為解決方案文件,到目前為止,每個版本的升級只是平台工具集的升級和優化,而解決方案是完全兼容的。你可以用VS2013打開VS2010生成的解決方案,也可以用VS2010打開更高版本的VS2013生成解決方案
我的理解是,從VS2010開始,不再製作專有的文件格式,這只是一個xml格式的文本文件,其中決定了解決方案的平台工具集和VS版本。既然.sln只是個文本文件,重新設定其中指定的VS版本和平台工具集,也許可以用低版本打開高版本的解決方案。

那麼就來嘗試用vs2010來打開vs2013,以下是我的嘗試記錄,嘗試中發現除了修改.sln後可以用vs2010打開vs2013,但還要修改項目的平台工具集以保證最好的兼容。
(1)直接打開

用VS2010打開VS2013生成的文件,產生如上提示。

選取一個vs2013的解決方案文件.sln,以文本文檔方式打開它。(我用的是sublime text 2,我認為是款代替記事本的不錯工具,性感而小巧。有人從Notapad+轉為用它,自有其價值吧。)

在文件開頭我們可以看到一些關鍵信息:
Format Version 12.00
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1

表明該.sln生成的格式版本是12.00(vs2013),vs版本是12.0.21005.1(vs2013),最小兼容版本是10.0.40219.1(vs2010)。
那也許把該解決方案改成10.0.40219.1以上都行吧?
【版本區別】
像我這樣的新手請注意這里,Version 12.00意味著版本為vs2013而非vs2012,本文末最後已總結了vs版本中的該現象。下一步中改Format Version 為11.00而非10.00

(2)修改.sln文件。

(3)重新打開
用VS2010打開修改後的解決方案文件,成功打開。

(4)編譯
我想起vs2012和vs2010的平台工具集不一致,vs2012是v110,vs2010是v100,vs2013則是v120。我想先不去項目文件里查看,也許在載入解決方案的時候vs已經重置了平台工具集?於是嘗試①直接編譯。

編譯失敗,因為結果平台工具集未重置,本機上沒有vs2013,找不到v120的平台工具集。同時,注意到,有「項目文件包含ToolsVersion="12.0" 設置……將項目視為具有ToolsVersion="4.0" 設置」。這似乎是.Net的工具版本號,不修改的話會自動兼容。
②手動修改之平台工具集版本,編譯看能否運行。

改為

③編譯通過,運行成功。同時,ToolsVersion的版本號是被視為4.0了。

④去查找對應ToolsVersion的項目文件,修改之。

改為

重新編譯,未報錯。

⑤綜合以上,該該項目已經實現從VS2013到VS2010的遷移。

【總結】
低版本VS打開高版本一般要修改的地方。
1、.sln文件中指定的VS版本號和平台工具集
2、修改項目文件中的平台工具集(v4.0→v12.0)
3、其它。
上述「其它」,主要指在配置中與環境變數有關的因版本改變而導致的路徑改變,比如vs2010中的部分lib在 VS 安裝目錄下的 Microsoft SDKs\v7.x 中,在vs2012以後轉移到了 VS 安裝目錄下的Windows Kits中VS 安裝目錄。注意區別。

轉載,僅供參考,祝你愉快,滿意請採納。

⑥ (求救)VS2012和2010編譯器問題,各問大神走過路過,幫幫忙!

VS2010和抄VS2012或者sv2008和VS2010,高版本VS編譯都會襲出現,使用VS2008的D:\Program Files\Microsoft Visual Studio 9.0\VC\bin目錄下的cvtres.exe替換到VS2010版本VS目錄下再編譯成功。
如果不行再用以下操作
上網搜索發現是嵌入清單的問題,於是對該工程以及所有依賴工程進行如下操作右鍵->工程屬性->配置屬性-> 清單工具->輸入和輸出->嵌入清單,選擇[否]
VS2010 2012CLR更換NET版本不像C#可以項目屬性直接更改,需要修改 *.vcxproj裡面 <PropertyGroup Label="Globals">節點添加以下內容
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
VS2012使用VS2010編譯vc++項目以支持XP系統運行,項目屬性 常規平台工具集選擇Visual Studio 2010 (v100),必須同時安裝VS2010 2012

閱讀全文

與vs2012平台工具集相關的資料

熱點內容
有個收廢紙的app叫什麼 瀏覽:947
js去掉頁面雙擊選中 瀏覽:434
php獲取json數據 瀏覽:21
四葉草引導黑蘋果教程 瀏覽:851
營銷建網站怎麼建 瀏覽:820
秘密的秘密安卓下載 瀏覽:737
數字營銷程序化交易 瀏覽:545
後期app都有哪些 瀏覽:462
ipad蜂巢移動數據怎麼收費 瀏覽:71
青鳥java和傳智的java 瀏覽:42
在微信中打開的dwg文件存在哪裡 瀏覽:667
終極解碼2014設置教程 瀏覽:810
拍照破解手機圖案密碼 瀏覽:885
安卓shell查看進程 瀏覽:158
mysql資料庫longtext 瀏覽:568
嵌入式linux有哪些特點 瀏覽:587
展開收縮代碼 瀏覽:189
archlinuxfn 瀏覽:744
文件檔案管理系統畢業設計 瀏覽:391
網路機頂盒電視沒信號怎麼回事 瀏覽:384

友情鏈接