Gov*_*ert 27 winsxs c++-cli visual-studio-2010 msvcr100.dll
在哪里可以找到一些官方说明,kb文章或其他描述Visual Studio 2010 C/C++运行时链接和部署策略更改的文档?
在Visual Studio 2008(使用VC90运行时)下,清单嵌入在本机映像中,运行时库部署为并行程序集(WinSxS).使用VS 2008 SP1重建本机exe或库时,这会导致问题,因为嵌入式清单需要更新版本的C++运行时.
对于VS 2010和MSVCR100运行时版本,策略似乎已完全更改.
这似乎是政策的一个重大变化,从SxS部署的回溯和我们在VS 2008下的清单依赖性.任何人都可以更好地了解变化的内容,并且可能指向一些文档,描述这些变化的自述文件或博客文章,动机和相关影响?
它认为这种方式更好 - 强大的版本清单和SxS部署是一场噩梦 - 但我对VS 2010中这些意外且看似无证的变化感到惊讶.
额外问题:如何在VS 2010下编译我的C++/CLI库以链接到msvcr100_clr0400.dll而不是msvcr100.dll?这个想法是C++/CLI程序集应该运行时没有.NET 4安装的依赖项(没有静态链接).
Han*_*ant 16
你已经回答了大部分问题,CRT的并排部署是一场噩梦,让太多的程序员陷入困境.微软同意并放弃了VS2010的发布.它返回到c:\ windows\system32中的DLL,名为msvcr100.dll.和msvcp100.dll,vcomp100.dll,atl100.dll,mfc100.dll,mfcm100.dll,其他运行时支持DLL.VS2003和早期版本的方式.现在,解决DLL Hell问题再次成为用户的负担.最不可能这样做的人但他们确实倾向于有预算来支付支出.与需要从免费网站获得帮助的程序员不同:)
但是您可以提供帮助,现在再次启用应用程序本地部署,您可以将msvcr100.dll部署在与主EXE相同的目录中.在以前的版本中明确检查和禁止.应用程序本地有一些细节,它隔离了你的应用程序的良好意味但不幸的更新.虽然您现在自己负责部署更新以修复安全漏洞.如果这不舒服,那么部署并依赖系统目录中的副本.
千万不能尝试链接到msvr100_clr0400.dll,这是一个私人副本由CLR使用.就像msvcr.dll是Microsoft DLL使用的私有副本一样.您没有链接到这些DLL所需的.lib文件.