是否可以签署一个类库netcore dll?
我使用以下代码创建了一个简单的网络核心类库项目:
L2
我去了项目属性,选项卡签名,选中了“签署程序集”选项并选择了一个pfx文件。
建立项目,一切都很好。
然后,我使用以下代码创建了一个net core console应用程序项目:
public class Test
{
public static string TestMethod(string test)
{
return "Hello " + test+ "!";
}
}
为了引用该项目,我添加了项目作为参考。左键单击,添加引用,项目并选择项目。在IDE中执行时一切正常。
然后我想构建我的exe,所以我转到csproj并添加以下行:
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();
}
然后我做
<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
一切都很好,然后:
dotnet restore
但它在这里失败了:
dotnet build
是否可以签署网核dll?如果是这样,我做错了什么?
答案 0 :(得分:2)
使用SNK文件而不是PFX文件来签名程序集。
通过打开开发者命令工具来创建SNK。
$ sn -k asdf.snk
这将创建asdf.snk文件,您可以使用该文件对程序集进行签名。 dotnet构建现在可以正常工作。
SNK和PFX有什么区别?查看此答案:snk vs. code signing certificate
简短的答案是PFX安全得多。好消息是您可以在以后使用PFX对程序集进行签名。同时,SNK签名将带您克服许多障碍,包括构建dotnet并允许其他强名称程序集加载该程序集。