CSt*_*vis 2 asp.net gac .net-4.0 asp.net-4.0
我正在使用asp.net 4.0开发基于Web的应用程序.
我在GAC中使用了一些dll,这些dll在旧的dll上有一些嵌入式依赖项.
我已配置程序集,以便依赖项重定向到我的计算机上正确版本的dll.这在3.5或更低版本的应用程序中完美地工作,但是,当我尝试基于相同的dll构建asp.net 4.0应用程序时,它会出现如下错误:
Could not load file or assembly 'ControlReferencedByMyDll, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXXX' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)
Run Code Online (Sandbox Code Playgroud)
我的ControlReferencedByMyDll版本是2.0.1.0版本.
我找不到.net 4.0的GAC配置实用程序,但在我的machine.config中(在.net 4.0的Framework和Framework64文件夹中)我添加了类似的内容:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ControlReferencedByMyDll" PublicKeyToken="XXXXXXXXXXXXXXXX"/>
<bindingRedirect oldVersion="1.0.0.0-9.9.9.9" newVersion="2.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
看看那是不是问题.
我甚至试图将applyTo ="v2.0.50727"属性添加到assemblyBinding以查看它是否有所不同.
但它似乎没有.
有没有其他人有这个问题?更重要的是,任何人都可以帮我解决这个问题吗?
小智 5
我不知道这么长时间后是否有帮助,但我遇到了以下问题.
我有一个重定向,如:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="test.dll" PublicKeyToken="XXXXXXXXXXXXXXXX"/>
<bindingRedirect oldVersion="1.0.0.0-9.9.9.9" newVersion="2.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
而且,虽然它在之前的版本中有效,但它也没有在4.0上运行.
我从名称中删除了".dll",现在它可以了!
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="test" PublicKeyToken="XXXXXXXXXXXXXXXX"/>
<bindingRedirect oldVersion="1.0.0.0-9.9.9.9" newVersion="2.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
希望它可以帮助下一个可怜的家伙几个小时.
| 归档时间: |
|
| 查看次数: |
5989 次 |
| 最近记录: |