c# - 签网核心类库

标签 c# .net-core sign

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

相关文章:

C#:微软为什么不让 ReadOnlyCollection<T> 继承自 ReadOnlyCollectionBase?

java - 什么java语句或函数来格式化尼日利亚奈拉货币的货币

function - 方案中的签名功能?

c# - 未能创建 SqlDataSourceEnumerator

c# - Unity找不到其他GameObject的脚本

c# - 有没有办法检索事件的委托(delegate)

c# - 无法在 .net core 1.0 中使用数据注释

angular - 使用 Angular 和 dotNet 核心进行拖放

c# - 如何在 .Net Core 项目中使用 WcfCoreMtomEncoder?

swift - 使用 Swift 显示签名 View