在用VS开发的时候经常出现在开发机器上可以正确运行,但是在客户机器上却出现运行错误的情况。一种可以解决的方法就是程序release的时候将该程序引用的dll与应用程序一起打包,这样就可以避免出现错误。那么如何知道自己开发的应用程序引用了那些dll呢?
假设开发的应用程序为myApp,那么编译以后在Debug或者Release目录下查找myApp.exe.embed.manifest文件,该文件中会有类似如下语句:
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
我们可以将dependency下包含的所有dll随应用程序一起打包,上例中所需要的dll文件在C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugCRT 目录下,版本号为9.0.21022.8。如果dependency下还有其他项,那么也需要将对应的dll一起打包。