在Windows XP上,我有一個.exe文件,它在本地應用程序目錄中以msvcp90.dll
,msvcr90.dll
和Microsoft.VC90.CRT.manifest
運行。我也有這些.dll文件的C:\WINDOWS\WinSxS\Policies
的策略文件,它由Visual C++ 2008 SP1 Redistributable Package安裝。我想刪除此策略文件,並使用我的本地目錄中的應用程序配置文件。該政策文件是:使用本地配置文件替換Microsoft.VC90.CRT WinSxS策略文件
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" name="policy.9.0.Microsoft.VC90.CRT" version="9.0.30729.1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/>
<bindingRedirect oldVersion="9.0.20718.0-9.0.21022.8" newVersion="9.0.30729.1"/>
<bindingRedirect oldVersion="9.0.30201.0-9.0.30729.1" newVersion="9.0.30729.1"/>
</dependentAssembly>
</dependency>
</assembly>
我的配置文件是:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/>
<bindingRedirect oldVersion="9.0.20718.0-9.0.21022.8" newVersion="9.0.30729.1"/>
<bindingRedirect oldVersion="9.0.30201.0-9.0.30729.1" newVersion="9.0.30729.1"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
的Dependency Walker時使用的配置文件,而不是政策文件的報告並排端錯誤 - 出了什麼問題?另外,應該將配置文件命名爲<application>.exe.config
或Microsoft.VC90.CRT.config
?
(爲了澄清,使用該策略文件時不會出現任何錯誤。然而,這裏的客戶是不允許安裝再發行組件包。
的MSDN docs狀態的應用程序配置文件可以重定向到使用不同的應用同樣的組件(per-application configuration),並且它可以覆蓋現有的政策(發佈配置)文件,如果需要的。因此,我認爲必須能夠使用本地應用程序配置文件,上述文件中的東西的版本丟失或不正確。)
使用您所要的文件並擺脫錯誤。 –