首页 > 解决方案 > Visual Studio 2017 不签署程序集

问题描述

我需要制作一个我在Visual Studio 2017下用 C# 开发的程序集,这是一个强名称程序集。
我的客户向我提供了一个.snk文件,我在项目属性的“签名”选项卡中打开了“签署程序集”复选框。在后台,在.csproj文件中添加了以下元素:

    <SignAssembly>true</SignAssembly>
    <AssemblyOriginatorKeyFile>ZZZ.snk</AssemblyOriginatorKeyFile>
    <DelaySign>false</DelaySign>

问题是生成的程序集没有签名。

另一个明显的尴尬,可能表明问题的原因,是尽管有

    <DelaySign>false</DelaySign>

.csproj文件中,每次我打开Signing选项卡时,Delay sign only复选框都处于未定义状态,如下所示

我在这里和我信任的社区中迷失了方向。
预先感谢大家的帮助。

关于我的环境的一些细节:

    视觉工作室企业 2017
    版本 15.9.14
该项目采用新格式并针对 .NET 4.7.1

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <TargetFramework>net471</TargetFramework>

标签: visual-studio-2017.net-assemblystrongname

解决方案


答案相当尴尬;但是,我欠社区:
引用问题“问题是生成的程序集没有签名。
现在,我如何检查程序集是否已签名?通过运行sn -v bin\x64\Release \XYZ.dll
好吧,bin\x64\Release确实包含一个过时的 XYZ.dll 副本,我现在什至不记得了。
生成的程序集实际上放在bin\Release\net471中,运行sn -v bin\Release\net471 \XYZ.dll确认程序集已签名......

嗯,就是这样:o|


推荐阅读