Azure DevOps发布流水线--如何解决强名称验证问题

问题描述 投票:0回答:1

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

System.Security.SecurityException: Strong name validation failed. (来自 HRESULT 的异常:0x8013141A)

我尝试了 sn.exe -Vr "dll path "的所有引用的 dlls。也试过在exe的app.config中使用bypassTrustedAppStrongNames enabled="false" & "true "命令。但都没有用。

谁能给个建议解决这个问题。先谢谢你。

c# dll azure-devops azure-pipelines
1个回答
0
投票

您可以尝试在应用程序级别中禁用强名称验证,方法是在应用程序中添加以下代码段。应用配置文件

<configuration>  
  <runtime>  
    <bypassTrustedAppStrongNames enabled="true" />  
  </runtime>  
</configuration>  

更多信息你可以看一下 微软文档页


0
投票

我不确定你是否有权限在托管代理上跳过验证。所以你可以自己做一个代理,或者

  • 移除依赖关系的强名,或者重建时不使用强名。
  • 签署你的应用程序。

0
投票

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

关于这一点,请参考以下内容 案子 有类似问题。

© www.soinside.com 2019 - 2024. All rights reserved.