首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于强版命名库的每个版本,是否需要新的.snk密钥文件?

对于强版命名库的每个版本,是否需要新的 .snk 密钥文件,这个问题涉及到了 .NET 中的强命名和密钥文件的概念。

强命名是 .NET 中的一种机制,用于唯一标识程序集,并确保程序集的完整性和版本控制。强命名使用数字签名和公钥/私钥对来确保程序集的签名和身份。密钥文件是一个包含公钥和私钥的文件,用于强命名程序集。

在强命名程序集时,需要使用 .snk 密钥文件。对于每个版本的程序集,是否需要新的 .snk 密钥文件取决于开发人员的需求和版本控制策略。如果需要对每个版本的程序集进行唯一标识和版本控制,则需要为每个版本生成新的 .snk 密钥文件。如果不需要对每个版本进行唯一标识和版本控制,则可以使用同一个 .snk 密钥文件。

总之,是否需要为每个版本的程序集生成新的 .snk 密钥文件,取决于开发人员的需求和版本控制策略。建议在强命名程序集时,使用同一个 .snk 密钥文件,以简化版本控制和管理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet 签名下使用 InternalsVisibleToAttribute 给程序集加上友元

using 下面,命名空间 namespace 定义上面,基本上这个代码都放在 AssemblyInfo.cs 文件里面 但如果此时 A 程序集是添加了签名,那么以上代码将构建不通过 错误 CS1726...不过防篡改功能也是可以通过强签名实现,在运行时候判断一下文件摘要信息和公钥比对就可以知道文件是否被篡改。...新建时候输入证书名就可以,可以不加上密码 此时就可以拿到 snk 密钥文件,同时给程序集加上签名了 而想要加入到友元程序集,也需要签名,对于友元程序集签名密钥没有要求,只要有签名就可以了。...如上面例子 B 程序集,也使用一个密钥文件进行签名,签名之后,还需要密钥文件公钥写到 InternalsVisibleTo 参数里面,格式如下 [assembly: InternalsVisibleTo...文件公钥 sn -tp dotnet-campus.PublicKey.snk 此时输出内容大概如下,这就是密钥文件公钥 Microsoft(R) .NET Framework 名称实用工具

72520

当InternalsVisibleToAttribute特性遭遇签名

在很多情况下,我们需要将最终程序集以命名形式发布。为此,我们修改Lib项目设置,开启"Sign the assembly”开关,并创建一个密钥文件。 ?...那么,如果我们将单元测试项目Test也加上签名,并将InternalsVisibleToAttribute特性指定成程序集名称,是否可以解决这个问题呢?...四、需要指定是完整公钥 实际上对于上面的情况,需要指定不是程序名命名,而是指定对程序集进行签名时采用公钥。那么如何得到这个公钥呢?...具体来说我们需要两个步骤:通过SN.exe结合-p开关从将包含公钥/私钥密钥文件中提取公钥,并导入到指定密钥文件中;然后执行SN.exe并结合使用-tp开关,将公钥文件公钥显示出来。...其中Test.snk表示对单元测试项目进行签名密钥文件,而Test.PK.snk则表示导出只包含公钥密钥文件

639110
  • 关于命名程序集

    强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码 如何创建命名程序集( Strong Name Assembly ) 创建一个命名程序集首先需要获得一个用命名实用工具...MyCompany.keys 文件将包含以对以二进制格式存储公有密钥和私有密钥。    ...1.0.0.0 程序集程序,通过更改它配置文件,转而让程序去引用版本为 2.0.0.0 程序集)来使用新版本;最后, GAC 还提供了对不同版本程序集并存( side-by-side...配置每一个应用程序  XML 配置文件,让它们指向一个公有目录,这样,在运行时, CLR 将知道到哪里去找这个命名程序集。...命名策略: 生成公钥与私钥对,并 对私钥做严格保护 生成:sn -k keyfile.snk 公钥与私钥对 抽取公钥:sn -p keyfile.snk public.snk 从keyfile中抽取公钥保存到

    63910

    【细致完整】终章:模拟.NET应用场景,综合应用反编译、第三方调试、拦截、一版本兼容方案

    重点:签名 上面分目录、配置文件版本配置目录也还不够,主工程还是无法区分两个版本Lib.Harmony,这里涉及.NET 签名,就是上面App.config配置中publicKeyToken...这里,对于1.2.0.1版本0Harmony.dll我们依然不动,只对2.2.2高版本签名处理,签名步骤参考[VS2008版本引入第三方dll无签名[8]],我们来一起做一遍,这里会借助Everything...注意:暂时不要用最新预览2.3.0-prerelease.2,站长做这个示例签名用这个版本花了2个晚上没成功,换成2.2.2就可以,下面的图也重新录了,可能该版本有其他依赖缘故,只是猜测: 创建一个随机密钥对...\bin\NETFX 4.6.1 Tools\sn.exe",在高版本目录下生成一个密钥文件0Harmony.snk,命令如下: "C:\Program Files (x86)\Microsoft SDKs...Git一般是配置成不能上传可执行程序或dll文件,但多版本dll特殊,部分库不能直接从NuGet引用,所以本文中版本Lib.Harmony只能使用自己签名版本,我们将dll文件扩展名改为“.ref

    36130

    《CLR via C#》Part1之Chapter3 共享程序集和命名程序集(二)

    CLR支持两种程序集:弱命名程序集(weakly named assembly)和命名程序集(strongly named assembly). ?...类型程序集则是由一个文件名、一个版本号和一个语言文化(culture),除此之外,命名程序集还使用发布者私钥进行了签名。...创建类型步骤: 使用Strong Name实用程序(SN.exe)来获取一个密钥。(这个程序与.NET Framework SDK和MS VS配套提供。)Eg....SN –k MyCompany.snk,SN.exe所有命令行都区分大小写; 由于公钥数字非常大,难以使用,人们设计了公钥标记(public key token),公钥标记是公钥64位哈希值。...Assembly Cathe,GAC),对于.NetFramework 3.5和以前版本,GAC通常放在以下目录,C:Windows\Assembly,而对于.Net4.0,GAC位于C:Windows

    49320

    使用C#编写ASP可调用DLL组件

    .在该项目上右键,属性,进行如下设置: 1)应用程序选项卡下,点击“程序集信息(I)...”按钮,勾选“使程序集COM可见(M)”,之后确定 2)签名选项卡下,勾选“为程序集签名(A)”,之后在“选择名称密钥文件...(K)”中,选择“新建”,之后新建一个密钥文件,我这里起名为“test.snk”,密码那项我设置是不选择。...关于设置名称这位置,有的会报错,提示没有权限,给Everyone权限就可以了 3)保存属性设置 5.生成项目,把生成dll使用regasm命令进行注册(C#写DLL属于托管代码,只能用RegAsm...RegAsm在C:\Windows\Mircosoft.NET下对应.NET框架文件夹下) 6.在ASP中进行调用,代码如下: <% dim obj set obj = server.CreateObject...("LibTest.test") response.write(obj.print) %> 7.注意事项: 如果写程序是64位,那么在IIS7以上版本下,需要在应用程序池中设置为64位(默认就是)

    2K20

    Visual Studio对程序集签名时一个很不好用地方

    现在我们需要使用“同一个Key File”对Lib1和Lib2进行签名,Lib1、Lib2和Key File(Key.snk) 对应目录结构如右图所示:Key.snk和Lib1和Lib2处在相同目录下面...但是当你选中Key.snk这个文件时候,Visual Studio并不会用将这个文件作为对本程序集进行签名Key File,而是会自作主张地将该文件拷贝到Lib1所在根目录下。..., 我就需要每个项目进行更新。...解决方案1:通过AssemblyKeyFileAttribute特性指定Key File AssemblyKeyFileAttribute特性定义在System.Reflection命名空间下,专门用于指定在对项目进行签名时采用...解决方案3:以Link方式添加Key File 这是我最初想到办法,但是当我试验时候将Key File添加到项目文件Properties子目录下,导致它重新创建File File。

    64790

    实现通过COM组件方式实现java调用C#写DLL文件完整demo

    一、使用C#编写com组件   开发环境 :VS2017   1、新建工程:CalcTest(类项目,根据自己喜好需要取工程名,框架我这里使用是:.NET Framework 4 ,你可以根据自己来选...    这里我生成CalcComkey.snk 文件放在D盘,注意选择你自己保存路径。   ...5、在签名 标签中选中 为程序集签名,选择刚刚生成名称文件CalcComkey.snk 。 ?...命名空间为:CalcTest、类名为:Calc 2、jacob下载,可以自主下载 二、实现步骤 1、将CalcTest.dll、CalcTest.tlb复制到JAVA开发环境中,JAVA环境中需要安装对应版本...ok,对于整个操作过程就分享到这里了,如果有不理解,或者我有讲不对请帮忙指出,谢谢。

    2.8K80

    State Processor API:如何读写和修改 Flink 应用程序状态

    随着每个版本发布,Flink 社区都会添加与状态相关功能,来提高 Checkpoint 和故障恢复速度、改善应用程序维护和管理。...当使用批处理作业处理 Savepoint(或 Checkpoint)数据时,我们需要一个模型,将每个任务状态数据映射到数据集或表中。实际上,我们可以把 Savepoint 视为一个数据。...每个算子(由 UID 标识)代表一个命名空间。算子每个 Operator State 可以映射为命名空间下一个专用表,只有一列来保存所有任务状态数据。...由于算子 Snk 没有任何状态,它命名空间是空。 State Processor API 现在提供了创建、加载和写入 Savepoint 方法。...该功能为用户维护和管理 Flink 流应用程序开辟了许多可能性,包括流应用程序任意迭代以及应用程序状态导出和导入。

    1.5K20

    12 个优化 Docker 镜像安全性技巧

    作者 | Marius 译者 | 王 策划 | 闫园园 本文介绍了 12 个优化 Docker 镜像安全性技巧。每个技巧都解释了底层攻击载体,以及一个或多个缓解方法。...在构建镜像时,你需要克隆 Git 存储(这需要构建密钥,例如该存储 SSH 访问密钥),从源代码构建应用程序,然后再删除源代码(和密钥)。...使用本地开发机器进行构建问题是,你本地 Git 存储“工作树“可能是脏。例如,它可能包含有开发过程中需要密钥文件,例如对中转甚至生产服务器访问密钥。...每个 Linux 发行这个命令都不一样。...注意:如果你唯一需要定制是“以非 root 用户身份运行代码”,那么每个无发行基础镜像中都有一个默认非 root 用户,详见这里。

    61320

    开源KMS之vault part1

    与 Vault 每一次交互,无论是将机密放入键/值存储中还是为 MySQL 数据生成数据用户名密码,都需要调用 Vault API。...创建配额时可以指定路径,可以在根级别、命名空间级别或挂载点上定义速率限制配额。速率限制器基于每个 Vault 节点应用于每个唯一客户端 IP 地址(速率限制配额消耗信息不会再集群内复制)。...租约、续约以及吊销 对于每个动态机密和 service 类型登录令牌,Vault 都会创建一个租约(lease):包含持续时间、是否可续约等信息元数据。...这带来一个明显收益:机密使用者需要定期与 Vault 通信以续约(如果允许的话),或是请求一个机密。这使得 Vault 审计日志更有价值,也使密钥滚动更新变得更加容易。...vault部署 本机地址 192.168.31.181 系统版本 centos 7.9 Vault版本: v1.15.4 启动consul单机 $ .

    16410

    WinKawaks加拳皇97rom包在PC搭建拳皇97

    至于公司是否盗用了任天堂等公司版权,由于时代条件限制,无人追究。也有人说小霸王游戏机是山寨任天堂FC游戏机。...拳皇97rom包是一个zip格式文件。...WinKawaks官方网站现在推出了各大街机游戏rom下载,不仅有拳皇97,还有拳皇各种版本,如拳皇98,99,2000,2002等,任君挑选,很是人性化。...对于WinKawaks模拟器使用,其官网也有详细介绍,具体参见:WinKawaks Step by Step。 3.拳皇97键位设置 在正式开始游戏之前,我们需要设置按键。...关于拳皇97中技能叫法主要有: 必杀技:普通技能; 超必杀技:需要一个能量点才能使用; Max必杀技:需要两个能量点才能使用,其中一个能量点用于爆气了; 隐藏必杀:需要两个能量点才能使用

    7.6K20

    MySQL8 中文参考(二十六)

    要修改现有帐户限制,请使用ALTER USER。提供一个WITH子句,命名要限制每个资源。每个限制默认值为零(无限制)。...对于某些发行类型(例如 Windows 上二进制发行,或 Linux 上 RPM 和 DEB 发行),安装过程会初始化 MySQL 数据目录,包括包含授予权限表mysql系统数据。...对于不执行此操作发行,您必须手动初始化数据目录。有关详细信息,请参见第 2.9 节,“安装后设置和测试”。 要确定是否需要初始化授权表,请查找数据目录下是否有一个mysql目录。...RSA 文件不会过期。 SSL 文件对于每个证书/密钥对具有不同序列号(CA 为 1,服务器为 2,客户端为 3)。 服务器自动创建文件归属于运行服务器账户。...否则,要显式命名密钥文件,请在服务器选项文件中将系统变量设置为密钥文件名。

    29910

    Linux基础之软件包管理

    概述 在redhat系列发行中,采用rpm软件包管理器,rpm原名是Red Hat Package Manager,后来当其他发行也采用这种软件包管理机制以后,重新命名,改为RPM Package...rpm包命名格式以及基本使用 1.rpm命名格式,rpm包分为核心包和功能包 对于核心包,命名格式为: name-version-release.arch.rpm,其中version指明了程序源码版本信息...,组成是:major.minor.release 例如:GeoIP-1.5.0-9.el7.x86_64.rpm 对于功能包,命名格式为: name-function-version-release.arch.rpm...常用选项: -a:查看软件包完整性 有时候还需要检验软件包来源合法性: a.获取并导入软件包制作者密钥: rpm –import /etc/pki/rpm-pgp/RPM-GPG-KEY-CentOS.../centos/RPM-GPG-KEY-CentOS-6 #要进行校验时,要指明密钥文件位置 enabled={1|0}:是否启用此仓库 a.挂载光盘 使用示例:将光盘作为本地yum仓库 mount

    1.5K80

    .Net Core迁移到MSBuild平台(二)

    一、前言 在上一篇文章.Net Core迁移到MSBuild多平台编译问题中,简单讲了下项目配置文件节点配置,这篇我将用一些例子来详细讲下从project.json迁移到msbuild过程节点配置...做过完整迁移新项目配置文件朋友,肯定会觉得项目配置文件Msbuild配置太扯了,虽然能直接编辑项目文件,但整个配置文件中没有了像project.json中智能提示,当你在打开文件后你就会发现以前很轻松能写出来...二、XML定义 .csproj是基于xml格式,下面介绍下project.json与.csproj文件差异定义例子: 项目名称 (ProjectName) { "name": "MyProjectName..." } 在csproj配置中并没有对应定义,它只会有项目文件名相同如:MyProjectName.csproj 程序集版本 (Version) { "version": "1.0.0-alpha...emitEntryPoint": false } } Library 程序集命名签名

    1.8K20

    深入MongoDB4.2特性:字段级加密

    应用程序必须修改与构造读写操作相关任何代码,以通过驱动程序加密包含加密/解密逻辑。应用程序负责根据每个操作选择适当加密/解密数据密钥。...在实例化客户端以启用自动客户端字段级加密时,应用程序必须指定以下组件参数: A、存储数据密钥密钥MongoDB集群。 B、用于存储加密数据密钥密钥命名空间(。)。...驱动程序需要访问KMS才能加密和解密受保护字段或创建数据密钥。 D、使用JSON模式语法( JSON schema syntax)每字段加密规则。...本地密钥文件数据密钥加密应仅用于开发或评估阶段,不要用于生产环境。 B、可选服务器端JSON模式,用于指定加密验证规则。 C、存储数据密钥密钥MongoDB集群。...密钥保管群集可能与存储客户端加密数据群集不同。 D、用于支持自动加密mongocryptd守护程序。仅MongoDB Enterprise企业支持。

    4.5K30

    ANOVA组间比较方法有十多种,到底该选哪个呢?

    不同论文中方法都不太一样。此时,到底该选哪个呢? 今天就结合教材和SPSS官方指导文件讨论一下。 ---- ?...由孙振球和徐勇勇大佬编写《医学统计学第4》第58-59页提到以下内容: “ 优先推荐常用办法为LSD-t 法 、Dunnett-t 法、SNK-q法,而Bonferroni法、Sidak法、Tukey...(四) 教材:SNK-q 法适合于多个样本均数两两之间全面比较。 SPSS官方文件:使用 Student 化范围分布在平均值之间进行所有成对比较。...个人解读: ①SNK-q 检验是对所有组之间进行全面两两比较,即不论是否存在对照组或者这些组之间是否存在联系,只要是多组数据,就可以采用SNK-q 检验。...②SNK-q 检验应用场景如下:假设存在3组不同药物,需要比较3个药物之间疗效差异,此时便可以选择SNK-q 法进行组间比较。

    3.2K30

    使用Docker安装 Chevereto V4 搭建自己图床

    Chevereto分为免费和Pro版本Pro版本一次性买断费用为75刀,但其实免费已经很够大家日常使用了,博主这次要进行安装是它Pro版本。 准备工作 **!!...通过运行hello-world镜像来验证Docker引擎安装是否成功。...它是HTTPS证书通知所需要用到。 创建Chevereto镜像(免费可跳过) 这个过程会建立Chevereto容器镜像。...使用免费时省略此步骤,因为镜像可以在这里看到 GHCR. make image 这个过程将要求你提供许可证密钥。如果你购买了Pro可以在这里找到你密钥(详细见下图)。.../namespace文件夹下检查命名空间文件。 运行Chevereto网站 Pro版本:要创建一个网站,请通过NAMESPACE选项运行make spawn命令。

    1.4K30

    微服务架构系列一:关键技术与原理研究

    图2-1 Docker引擎组件  有了上述组件,当我们想运行一个容器时,首选需要获取镜像,获取镜像有两种方式,一种是从指定本地镜像或网上镜像中拉取容器所需镜像;另一种是根据镜像构建文件(Dockerfile...也就是客户端每个请求独立且要包含服务端需要所有信息,这样好处是可以单独查看每个请求,可见性高且更容易故障恢复,还能降低服务端资源使用;第三,可缓存,服务器返回信息时,必须被标记是否可以进行缓存,如果可以进行缓存...需要注意是,一般情况下不同测试阶段构建物应该保证唯一,这样更能够保证最终生产环境部署版本有效性及避免问题交叉,当然对于不同阶段涉及不同环境测试诸如测试环境,预发布环境,生产环境等可以通过加载不同配置文件来达到预期目的...授权作用是,决定一个用户是否有权使用Kubernetes API 做某些事情,Kubernetes 从1.6版本开始支持RBAC,从1.8版本开始进入稳定版本,并成为默认授权方式,用以替代ABAC(Attribute...以1.8.0版本为例,常见准入控制插件有Initializers(可以用来给资源执行策略或者配置默认选项),NamespaceLifecycle(保证处于终止状态命名空间不再接收对象创建请求,并拒绝不存在命名空间其请求

    3.1K41
    领券