M
Marcel
Hi,
We're building an application consisting of an exe and several dlls
with VS2005 that needs to be xcopy installed.
VS2005 automatically embeds a manifest binding the app and dlls to the
assembly 'Microsoft.VC80.CRT' version 8.0.50608.0. Through a policy in
the GAC this version is redirected to version 8.0.50727.42 which is
deployed with the app.
But when deploying this to a machine not having this policy installed,
the .NET runtime cannot find the correct version of the assembly.
To correct this. I created an application configuration file like the
following to redirect to the new assembly version:
<?xml version ="1.0"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT"
processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/>
<bindingRedirect oldVersion="8.0.41204.256-8.0.50608.0"
newVersion="8.0.50727.42"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
This does not work and results in a 'The system cannot execute the
specified program' error.
The event log states: Syntax error in manifest or policy file "F:
\dv31\Microsoft.VC80.CRT.MANIFEST" on line 4.
This file is just a copy from the redist directory.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright © 1981-2001 Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<noInheritable/>
<assemblyIdentity
type="win32"
name="Microsoft.VC80.CRT"
version="8.0.50608.0"
processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"
/>
<file name="msvcr80.dll"/>
<file name="msvcp80.dll"/>
<file name="msvcm80.dll"/>
</assembly>
Anyone any idea how to get this working? The application config file
determines the binding context for all the DLLs it uses, right?
Why didn't MS just update the manifest files when they updated the
runtime DLLs?
TIA,
-- Marcel
We're building an application consisting of an exe and several dlls
with VS2005 that needs to be xcopy installed.
VS2005 automatically embeds a manifest binding the app and dlls to the
assembly 'Microsoft.VC80.CRT' version 8.0.50608.0. Through a policy in
the GAC this version is redirected to version 8.0.50727.42 which is
deployed with the app.
But when deploying this to a machine not having this policy installed,
the .NET runtime cannot find the correct version of the assembly.
To correct this. I created an application configuration file like the
following to redirect to the new assembly version:
<?xml version ="1.0"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT"
processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/>
<bindingRedirect oldVersion="8.0.41204.256-8.0.50608.0"
newVersion="8.0.50727.42"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
This does not work and results in a 'The system cannot execute the
specified program' error.
The event log states: Syntax error in manifest or policy file "F:
\dv31\Microsoft.VC80.CRT.MANIFEST" on line 4.
This file is just a copy from the redist directory.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright © 1981-2001 Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<noInheritable/>
<assemblyIdentity
type="win32"
name="Microsoft.VC80.CRT"
version="8.0.50608.0"
processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"
/>
<file name="msvcr80.dll"/>
<file name="msvcp80.dll"/>
<file name="msvcm80.dll"/>
</assembly>
Anyone any idea how to get this working? The application config file
determines the binding context for all the DLLs it uses, right?
Why didn't MS just update the manifest files when they updated the
runtime DLLs?
TIA,
-- Marcel