2013-06-02 63 views
5

我有一个在VS2005中创建的C++/CLI项目。我希望能够在VS2010(或2012)中运行此操作,因为这是我的主要IDE 我需要修改C++/CLI项目中的一些内容,并且它不得不来回切换到vs2005以重新编译,副本等 另一个重要原因是我在VS2010/2012中运行的项目是在.NET4中,所以没有办法将所有内容都移动到VS2005上。运行vs2005 C++项目在更高版本的visual studio中

该项目对非托管的第三方库的依赖关系本身对C的调试版本++可再发行组件库(MSVCR80.DLL,msvcm80.dll,msvcp80.dll)的依赖

当我第一次跑了升级项目我收到“指定的模块找不到” -

就在那时我注意到了CLI项目正在编制对以后的版本MSVC的(MSVCR90.DLL)

CLI集依赖按依赖;右边

enter image description here

VS2005左VS 2008年有没有什么办法让使用2005米的库VS更高版本编译?

更新它并不重要哪一个它编译(反正可能是不可能的),但它可以并排运行和调试? 当我尝试运行已编译的项目,我收到此错误信息:

enter image description here

我试图复制在VS2005的项目到VS2010项目清单文件,但是,这并不工作(同样的错误消息) 。我也禁用了嵌入式清单,并将生成的.manifest文件替换为vs2005中的文件,这也不起作用。

UPDATE2我已经在清单指定msvcr库得到过去这个错误:

<dependentAssembly> 
     <assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
然而

现在当我跑我的应用程序的第三方库之一抛出AccessViolationException - Attempted to read or write protected memory当我尝试使用其中一种方法。这个代码在vs2005中正常工作。

+0

downvoter请解释后的一大失望? – wal

+0

通常,当应用程序的不同部分依赖于VC 2005和2008时,这不是问题。两个运行时库都应安装以运行此类程序。 –

+0

和在visual studio中运行,即调试? – wal

回答

4

我自从发现了Daffodil for Visual Studio这正是我所需要的,即在visual studio 2010中针对vc80进行编译。安装完成后,平台工具集下拉列表可以获得更多选择:

nb,您仍然需要安装Visual Studio的相关版本,例如,如果您需要vs2005的目标vc80。 NB2,Intellisense is broken在VS2010的CLI/C++这是时间量研究获得该项目的VS2010工作

enter image description here

+0

+1发现不错! –

0

您是否考虑过为应用程序制作清单?我的意思是,错误信息说问题在于缺乏清单,所以也许只需创建一个清单(通过项目设置)或添加一个手写清单就足够了?

参见:Problem loading RT without Manifest

0

http://www.davidlenihan.com/2007/07/winsxs.html

“那么,如何申请知道那是什么版本,它需要加载的DLL,其中一个?‘清单’进场清单是一个XML。该文件包含用于在C:\ Windows \ winsxs中创建目录的信息,以便可以加载特定的DLL。“

相关问题