2016-07-13 12 views
0

我們最近已將基於MFC的大型項目套件從Visual Studio 2005/2008轉換爲Visual Studio 2012(Update 5)。我們的項目以前使用一組特定於配置的清單文件,作爲資源嵌入,以指定要加載的並行(SxS)程序集的確切版本。作爲一個例子,下面這裏是我們的VC90運行舊清單文件中的一個片段:在Visual Studio中使用清單文件指定正確的VS 2012 VC/MFC運行時

<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 

以前,我可以在身份以上位於C文件夾關聯:\ WINDOWS \ WinSxS文件。一個例子是包含正確的二進制文件的文件夾「x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_e163563597edeada」。

如您所見,文件夾名稱包含填充assemblyIdentity節點屬性所需的所有信息。不幸的是,this(過時)文章證實了我的發現,即Microsoft不再以這種方式存儲VC2010 + SxS文件。 我想告訴我們的項目運行最新的Microsoft Visual C++ 2012 Redistributable(安裝程序v11.0.61030.0)。如何找到這些二進制文件的正確名稱/版本/ publicKeyToken信息?我無法找到MSDN列表或類似信息。

請注意,我一直在使用sxstrace.exe/Dependency Walker等來調查此問題。我可以確認清單文件已被正確嵌入到我們的可執行文件中;問題是隻有清單文件被錯誤地指定。

在此先感謝!

回答

0

看看this。正如我記得默認情況下,你的應用程序將鏈接到庫,如在你的Windows SDK中。爲了讓項目使用默認庫,只需刪除項目文件中有關它們的信息或使用默認設置重新創建項目。

相關問題