是否可以对类库 netcore dll 进行签名?
我使用以下代码创建了一个简单的网络核心类库项目:
public class Test
{
public static string TestMethod(string test)
{
return "Hello " + test+ "!";
}
}
我转到项目属性、选项卡签名、选中“对程序集签名”选项并选择一个 pfx 文件。
构建项目,一切正常。
然后我使用以下代码创建了一个 net core 控制台应用程序项目:
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 build 现在可以工作了。
SNK 和 PFX 有什么区别?看到这个答案:snk vs. code signing certificate
简短的回答是 PFX 更安全。好消息是您可以稍后使用 PFX 对程序集进行签名。同时,SNK 签名将使您克服许多障碍,包括 dotnet 构建和允许程序集被其他强名称程序集加载。
关于c# - 签网核心类库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44948072/