是否可以签名类库netcore dll?
我使用以下代码创建了一个简单的网络核心类库项目:
public class Test
{
public static string TestMethod(string test)
{
return "Hello " + test+ "!";
}
}
我去了项目属性,选项卡签名,选中了“对程序集签名”选项,并选择了一个pfx文件。
建立了项目,一切正常。
然后,我使用以下代码创建了一个网络核心控制台应用程序项目:
static void Main(string[] args)
{
Console.WriteLine("Start...");
try
{
string s = Test.TestMethod("123");
Console.WriteLine("Retrieved: " + s);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
为了引用该项目,我添加了该项目作为参考。左键单击,添加参考,项目并选择项目。在IDE中执行时,一切正常。
然后,我想构建我的exe,因此我转到csproj并添加以下行:
<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
那我做
dotnet restore
一切正常,然后:
dotnet build
但是它在这里失败,并显示以下错误:
error : PFX signing not supported on .NET Core
是否可以签署网络核心dll?如果是这样,我在做什么错?
最佳答案
使用SNK文件而不是PFX文件来签名程序集。
通过打开开发人员命令工具来创建SNK。
$ sn -k asdf.snk
这将创建asdf.snk文件,可用于对程序集进行签名。 dotnet构建现在可以使用了。
SNK和PFX有什么区别?查看此答案:snk vs. code signing certificate
简短的答案是PFX更安全。好消息是您可以在以后使用PFX对程序集进行签名。同时,SNK签名将带您克服许多障碍,包括构建dotnet并允许其他强名称程序集加载该程序集。
关于c# - 签网核心类库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44948072/