题
我正在尝试将发布商政策文件添加到gac中线程但是当我尝试在我的测试服务器上添加文件时遇到问题。
我得<!>“无法找到程序集'policy.3.0.assemblyname.dll'清单中指定的模块<!> <;
我的政策文件如下:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="*assemblyname*"
publicKeyToken="7a19eec6f55e2f84"
culture="neutral" />
<bindingRedirect oldVersion="3.0.0.0"
newVersion="3.0.0.1"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
请帮忙!
由于
本
我从头开始用一个没有依赖性(除了默认值)本身的新程序集重新创建了这个问题 - 一切都在我的本地开发机器上工作正常(并且重定向也很好)但是在添加策略文件时出现同样的错误到服务器上的GAC!
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="TestAsm"
publicKeyToken="5f55456fdcc9b528"
culture="neutral" />
<bindingRedirect oldVersion="3.0.0.0"
newVersion="3.0.0.1"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
以下列方式链接
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\al.exe /link:PublisherPolicy.xml /out:policy.3.0.TestAsm.dll /keyfile:..\..\key.snk /version:3.0.0.0
pause
请帮忙!
解决方案
我应该更加注意这意味着什么
坦率地说,这个要求是如此奇怪,以至于它没有注册。原始策略文件已编译到我尝试添加到gac的程序集中,在添加策略程序集时必须与策略程序集位于同一文件夹中。重要说明:发布商政策 程序集无法添加到全局 程序集缓存,除非原始 发布商政策文件位于 与程序集相同的目录。
其他提示
好的......只想查看一些基础知识......
您肯定已经为GAC安装了两个版本的依赖程序集?
您是否已验证[assembly:AssemblyVersion()]属性中的版本号是否正确。
你确实使用了[assembly: AssemblyVersion ()]和 NOT [assembly: AssemblyFileVersion (<!> quot; 1.0.0.1 <!> QUOT;)]
更新:我的错误,您只需要GAC中最新版本的程序集。我只是在这里试过,它的确有效。我唯一的另一个想法是检查公钥标记是否相同,并且您没有拼错程序集名称。
同样,在生成策略文件时,请确保使用程序集链接器中的/ version开关将版本号显式设置为3.0.0.0 AND 不指定/ platform开关。 e.g。
al.exe /link:assembly.config /out:policy.3.0.assembly.dll
/keyfile:mykey.snk /version:3.0.0.0
要使用Wise将策略程序集添加到GAC,您可以执行与添加策略所针对的程序集相同的操作。因此,您将策略程序集添加到<!>“全局程序集缓存<!>”;在Wise中,只要你在机器上的同一位置有策略文件(.config),Wise就会自动将它添加到GAC。