Azure DevOps发布管道-如何解决强名称验证问题

时间:2020-05-21 18:10:06

标签: c# dll azure-devops azure-pipelines

我有一个C#exe,它引用了其他一些dll,并且这些dll是使用强名称密钥签名的。当我在本地系统中执行此命令时,它工作正常。但是,当我从Azure发布管道调用相同的exe时,它给了我以下错误。

System.Security.SecurityException:强名称验证失败。 (来自HRESULT的异常:0x8013141A)

我为所有引用的dll尝试了sn.exe -Vr“ dll路径”。并在exe的app.config中尝试了命令bypassTrustedAppStrongNames enabled =“ false”和“ true”。但是两者都没有帮助。

任何人都可以提出解决方案的建议。预先感谢。

3 个答案:

答案 0 :(得分:1)

您可以尝试在csproj文件中搜索System.Management.Automation引用,并将其替换为<Reference Include="System.Management.Automation" />

为此,请参考与此类似的问题case

答案 1 :(得分:0)

您可以尝试通过在Application Configuration File

中添加以下代码段来禁用应用程序级别的强名称验证
<configuration>  
  <runtime>  
    <bypassTrustedAppStrongNames enabled="true" />  
  </runtime>  
</configuration>  

有关更多信息,请访问Microsoft documentation page

答案 2 :(得分:0)

我不确定您是否有权跳过对托管代理的验证。因此,您可以自己创建代理,也可以

  • 删除依赖项的强名称或不使用强名称重建它们。
  • 签署您的申请。