我正在将VS 2010中的C ++ / CLI混合模式可执行文件更新到VS 2012.我们的目标是.NET 4.5和VS2012工具集。
它在Debug版本中构建和运行完美,但Release版本立即退出,“此应用程序无法启动”。以及一个指向Microsoft Support page的链接,表明问题是SHIM_NOVERSION_FOUND
。
相关页面指出“您无法自行解决配置问题。请与应用程序供应商联系以解决问题。”作为有问题的应用程序供应商,我很难发现有关如何纠正此应用程序的任何信息。
应用程序在哪里发现C ++项目中正确的.NET版本,以及如何将正确的信息添加到.vcxproj或解决方案文件中以使其正确构建?
答案 0 :(得分:3)
我遇到了类似的问题,我不得不做两件事:使用配置文件,并在目标机器上安装Framework 4.0。 @CurtNichols指出了这个方向,但这里的链接最终将它们全部拉到了一起:How to: Configure an Application to Support .NET Framework 4 or 4.5。
这是我最终得到的app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
实际上,从A点到B点需要花费很多步骤,所以这里是“故事的其余部分”:
SHIM_NOVERSION_FOUND
错误。现在,我终于放弃并添加了MSDN条目中引用的app.config设置。但首先,我尝试过这样的话,应该说我可以使用3.5或4.0:
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0"/>
这是一个错误......可能是因为我最初是在4.0环境下编译的。我收到了“已经停止工作”这样的错误。
希望这个过程的细节可以帮助别人!
答案 1 :(得分:0)
这对我有用:
项目属性&gt;构建&gt;平台目标:任何CPU