是否可以签名类库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/

10-13 07:53