pau*_*doo 6 security dll version manifest visual-c++
最近的Visual Studio 2005安全更新可能会给我们带来问题.
我们构建并内部分发用C++编写的SDK.这些SDK仅是头文件和静态库的集合.安装安全更新后,我们的SDK现在依赖于较新版本的MSVC CRT DLL.这些SDK在生成EXE文件的项目的下游使用.
如果其中一个EXE文件是使用混合SDK构建的(一些来自安全更新之前,一些来自之后),那么生成的EXE文件会引用两组MSVC运行时DLL.例如:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.4053" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)
这是否意味着在运行时这个EXE将使用这两个版本的DLL?这是否意味着我们必须使用此EXE分发两个版本的MSVC运行时DLL?
有没有一种简单的方法来避免这个问题,而不强制使用Visual Studio 2005安全补丁构建所有SDK?(对于我们不希望不必要地重建的一些较旧且相当稳定的SDK,这是不合需要的)
是否可以简单地重写SDK或最终EXE文件上的清单文件,以便只提到一个版本的MSVC CRT DLL?
我的理解是相关更新如下:
Microsoft Visual Studio 2005 Service Pack 1的安全更新:KB971090
http://go.microsoft.com/fwlink/?LinkId=155934
Microsoft Visual Studio 2008 Service Pack 1的安全更新:KB971092
http://go.microsoft.com/fwlink/?LinkID=155933
我发现了另外两个相似的问题:
| 归档时间: |
|
| 查看次数: |
5263 次 |
| 最近记录: |