【发布时间】:2021-05-02 14:36:46
【问题描述】:
我有一个 C# .NET Framework 项目,我使用本地系统上的 .pfx 文件对其进行签名。在.csproj 文件中设置了以下属性:
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>keyfile.pfx</AssemblyOriginatorKeyFile>
</PropertyGroup>
此文件是开源项目的一部分。我正在尝试创建一个在某些提交上运行的管道。当我提交某些内容时,可以使用存储为 GitHub 机密的密码来安装原始的 *.pfx。问题是,当分叉的 repos 发出拉取请求时,管道会失败,因为它们无法使用 GitHub 机密。
长话短说,我发现我可以为此目的使用public signing。但是,当我尝试使用
构建我的项目时msbuild src\TcBlackCore\TcBlackCore.csproj -t:Rebuild -p:DelaySign=false -p:PublicSign=true -p:Configuration=Release -p:Platform=AnyCPU -p:TreatWarningsAsErrors=true
我收到以下错误:
CS7102:编译选项“PublicSign”和“CryptoKeyContainer”不能同时指定
除了提到的one GitHub issue 之外,我找不到有关此错误代码的任何信息:
ERR_MutuallyExclusiveOptions CS7102
这里有哪些互斥选项? DelaySign 应设置为docs。我应该怎么做才能让公共签名生效,以便可以构建分叉的 repos?
> msbuild -version
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
【问题讨论】: