我正在尝试将发布商政策文件添加到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

请帮忙!

有帮助吗?

解决方案

哇 - 好的。

我应该更加注意这意味着什么

(MSDN)如何:创建发布者政策

  

重要说明:发布商政策   程序集无法添加到全局   程序集缓存,除非原始   发布商政策文件位于   与程序集相同的目录。

坦率地说,这个要求是如此奇怪,以至于它没有注册。原始策略文件已编译到我尝试添加到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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top