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

如何签署由ILMerge操作生成的程序集?

在云计算领域,ILMerge是一个非常有用的工具,用于将多个程序集合并为一个单一的程序集。这可以提高应用程序的性能和可管理性。然而,在使用ILMerge操作生成的程序集时,有时需要对其进行签名以确保其可靠性和安全性。以下是如何签署由ILMerge操作生成的程序集的步骤:

  1. 首先,确保已经安装了ILMerge工具。可以从官方网站下载并安装:https://www.microsoft.com/en-us/download/details.aspx?id=17630
  2. 使用ILMerge命令行工具将程序集合并为一个单一的程序集。例如,以下命令将多个程序集合并为一个名为"MergedAssembly.dll"的程序集:
代码语言:txt
复制
ilmerge /out:MergedAssembly.dll Assembly1.dll Assembly2.dll
  1. 生成强名称密钥文件。可以使用sn.exe工具生成密钥文件。例如,以下命令将生成名为"MyKey.snk"的密钥文件:
代码语言:txt
复制
sn -k MyKey.snk
  1. 使用sn.exe工具将密钥文件嵌入到合并后的程序集中。例如,以下命令将密钥文件"MyKey.snk"嵌入到"MergedAssembly.dll"中:
代码语言:txt
复制
sn -Ra MergedAssembly.dll MyKey.snk
  1. 使用sn.exe工具验证程序集是否已签名。例如,以下命令将验证"MergedAssembly.dll"是否已签名:
代码语言:txt
复制
sn -Tp MergedAssembly.dll

如果程序集已签名,则该命令将返回True。

通过以上步骤,可以确保由ILMerge操作生成的程序集已签名,从而提高其可靠性和安全性。

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

相关·内容

.NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖

我们有多种工具可以将程序集合并成为一个。打包成一个程序集可以避免分发程序的时候带上一堆依赖而出问题。 ILMerge 可以用来将多个程序集合并成一个程序集。...将这些依赖和我们生成的主程序合并成一个程序集,这样分发程序的时候只需要一个程序集即可。...在这个编译目标执行的时候还会将原本的三个依赖删除掉,这样在生成的目录下我们将只会看到我们最终期望的程序集 Walterlv.Demo.AssemblyLoading.exe 而没有其他依赖程序集。...> ++ ++ 最终生成的输出目录下只有我们最终期望生成的程序集...那么 ILMerge 的命令行如何使用呢?它的参数列表是怎样的呢?

2.9K30

.NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖

,这样分发程序的时候只需要一个程序集即可。...如果你希望在你的项目当中进行尝试,可以把后面那些代表程序集的名称改为你自己项目中依赖程序集的名称。 现在在编译的时候使用命令 msbuild /t:ILRepack 就可以完成程序集的合并了。...在这个编译目标执行的时候还会将原本的三个依赖删除掉,这样在生成的目录下我们将只会看到我们最终期望的程序集 Walterlv.Demo.AssemblyLoading.exe 而没有其他依赖程序集。...ItemGroup> ++ ++ 最终生成的输出目录下只有我们最终期望生成的程序集...这些需要合并的参数中,第一个参数是主程序集,而后续其他的都是待合并的程序集。区别主程序集和其他程序集的原因是输出的程序集需要有名称、版本号等等信息,而这些信息将使用主程序集中的信息。

2K50
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法

    编写 .NET 程序的时候,我们经常会在项目的输出目录下发现一大堆的文件。除了我们项目自己生成的程序集之外,还能找到这个项目所依赖的一大堆依赖程序集。...一般来说,安装完之后,你编译的时候就会生成仅有一个 exe 的程序集了。...使用 ILMerge / ILRepack,是在 IL 级别对程序集进行了合并。 我们可以通过下面一张图来感受一下后三种原理上的不同。...这是一个分别通过 Fody、SourceYard 和 ILMerge / ILRepack 生成的程序集的反编译图。...表格之外还有一些特别需要说明的: ILRepack 额外支持修改 WPF 编译生成的 Baml 文件,将资源的引用路径修改成新程序集的路径。

    1.3K30

    C# 版dll 程序集合并工具

    自己开发ILMergeGUI  微软的ILMerge需要安装才能使用,结合Costura.Fody可以将ILMerge合并到自己开发的工具中,并且无需安装ILMerge....、 v2、v4,注意要与主文件及相关文件CLR版本一致;              勾选日志输出,会在工具目录生成日志文件。        ...ILMerge关键API: public void SetInputAssemblies(string[] assems); 设置输入的程序集,每一项为程序集包含文件绝对路径的全名,其中参数第一个程序集为主程序集...public string OutputFile { get; set; }  获取或设置合并后生成的文件名,必须在调用Merge()之前设置。 ...= 2,             SameAsPrimaryAssembly = 3,         } 此工具设置为SameAsPrimaryAssembly,即与输入文件的主程序集相同。

    1.9K70

    IIncrementalGenerator 增量 Source Generator 生成代码入门 判断程序集的引用关系

    本文将告诉大家如何在 IIncrementalGenerator 增量 Source Generator 生成代码里面,在 Roslyn 分析器里面判断两个程序集是否存在引用关系 先上核心代码实现,核心代码就是调用以下代码进行判断程序集的引用关系...else { // 没有访问过的,获取引用的程序集是否存在引用关系...Modules 从而获取到 ReferencedAssemblySymbols 也就是当前程序集所引用的所有程序集,再判断引用的程序集里面是否包含期望被引用的程序集 对于间接引用的程序集来说,需要进行遍历才可以判断到...,但是此时需要处理程序集循环引用问题。...本文这里采用传入一个字典的方法解决这个问题 获取当前分析器所分析的项目的引用程序集,可以通过 Compilation 的 SourceModule 的 ReferencedAssemblySymbols

    19010

    dotnet 使用增量源代码生成技术的 Telescope 库导出程序集类型

    本文将告诉大家在 dotnet 里面使用免费完全开源的基于增量源代码生成技术的 Telescope 库,进行收集导出项目程序集里面指定类型。...然而反射的性能是不高的,再加上需要扫描一次程序集,性能就更低了。...同时扫描程序集可能导致在启动过程中存在性能问题,比如扫描程序集导致更多依赖程序集被立刻加载,从而降低启动性能 本文将和大家介绍的是我所在的 dotnet 职业技术学苑(dotnet campus)组织开源的...接下来的任务就是找到程序集里面所有继承 Base 基础类型且标记了 FooAttribute 特性的类型 大家可以假想一下,在自己的项目里面,那些需要反射扫描整个项目程序集才能实现的代码,看看能否套用到这里...,包括当前项目引用的程序集。

    16010

    IIncrementalGenerator 增量 Source Generator 生成代码入门 判断程序集之间的 InternalsVisibleTo 关系

    本文告诉大家如何在使用 IIncrementalGenerator 进行增量的 Source Generator 生成代码时,如何判断两个程序集之间是否存在 InternalsVisibleTo 关系...当获取到两个程序集时,如果要开始准备生成相关代码,可能会因为不知道两个程序集之间是否存在 InternalsVisibleTo 关系,也就是是否应该导出其 internal 的类型而困扰。...,获取到对当前正在分析的项目设置 InternalsVisibleTo 的引用程序集,将程序集名作为生成代码的部分,让正在被分析的项目可以编写代码输出有哪些程序集是 internal 可见的 先新建以下...而 referencedAssemblySymbols 里面都是当前的 App 程序集所引用的程序集。...Lib2 程序集 通过以上的代码,即可在 Roslyn 分析器里面,了解程序集之间的 internal 关系,从而可以生成出更加符合预期的代码 本文所有代码放在 github 和 gitee 上,可以通过以下方式获取整个项目的代码

    27620

    IIncrementalGenerator 增量 Source Generator 生成代码入门 获取引用程序集的所有类型

    本文告诉大家如何在使用 IIncrementalGenerator 进行增量的 Source Generator 生成代码时,如何获取到当前正在分析的程序集所引用的所有的程序集,以及引用的程序集里面的所有类型...这项技术可以用在生成导出类型相关的需求上,比如我想导出我当前程序集里面所有引用的程序集的继承于 IFoo 接口的所有类型,即可采用本文介绍的方法 核心逻辑是在 Compilation 里面拿到 SourceModule...属性 这里的 ReferencedAssemblySymbols 属性就是当前的程序集所引用的程序集了 在这些程序集上枚举所有程序集内的语义类型即可获取到所有的类型 以下是详细的例子 为了方便描述本文的技术实现...就是引用的 Lib 程序集里面的所有类型。...为了测试咱的分析器代码是否正确,可以尝试将收集到的 Lib 程序集里面的所有类型的记录输出作为一个源代码生成 public void Initialize(IncrementalGeneratorInitializationContext

    31620

    提取Chrome中Cookie工具分享

    这个工具将从Google Chrome浏览器中提取Cookie,是一个.NET程序集,可以在C2中通过工具如PoshC2使用或CobaltStrike的命令。 项目地址点击底部阅读原文查看。...它是如何工作的? 在后台,这是通过首先启动Google Chrome来实现的。...该URL允许程序通过websockets上的API与Chrome的devtools进行交互,从而为我们提供了这些devtools的全部功能。...所有这些操作都是在受害人的计算机上本地完成的,因为该二进制文件正在运行,而无界面的Chrome进程正在运行。 ?...如果要在C2上运行此命令(例如使用PoshC2的sharpcookiemonster命令或通过CobaltStrike的命令),请execute-assembly使用ILMerge将生成的可执行文件与依赖库合并

    1.8K20

    生成模型学习的特征属性如何操作修改等介绍

    使用生成对抗网络的照片编辑(第2部分) 分享: 发表于2017年4月24日由Greg Heinrich发表2评论 标记深度学习,DIGITS,GAN,TensorFlow 在本系列的第1部分中,我介绍了生成对抗网络...(GAN),并展示了如何使用GAN生成手写数字图像。...在这篇文章中,我会做一些更令人兴奋的事情:使用生成对抗网络来生成名人脸的图像。 我将使用CelebA [1],这是一个20万对齐和裁剪名人的178×218像素RGB图像的数据集。...生成的对抗网络在除了小图像(这是开放研究的主题)之外是非常难以训练的,所以当在DIGITS中创建数据集时,我要求将图像的108像素中心作物调整为64×64像素,参见图2我没有将数据分解为训练和验证集,因为我对测量样本间性能不感兴趣...图8:由退化G产生的图像

    1K20

    C#将引用的dll嵌入到exe文件中

    当发布的程序有引用其它dll, 又只想发布一个exe时就需要把dll打包到exe 当然有多种方法可以打包, 比如微软的ILMerge,混淆器附带的打包......方法如下: 1.项目下新建文件夹dll 2.把要打包的dll文件放在dll文件夹下,并包括在项目中 3.右键文件属性, 生成操作选择嵌入的资源 4.实现如下代码, 在窗口构造中实现也可以(在窗体事件中无效...,如winform_load) 这里需要注意,“引用”下的dll,需要设置“复制本地”为False,这样在bin目录下生成exe的时候就不会顺便复制dll了(这步可要可不要) using System;...return Assembly.Load(assemblyData); } } } } 实现原理: 把dll嵌入到exe程序的资源中..., 并实现程序集加载失败事件(当在程序目录和系统目录下找不到程序集触发), 当找不到程序集时就从资源文件加载, 先转换为字节数组再转换到程序集返回给程序, 这样dll就被加载到程序中了.

    4K20

    .NET 的程序集加载上下文

    目录中发现的程序集 Assembly.Load 方法的大多数重载都将程序集加载到此上下文中 ApplicationBase 和 PrivateBinPath 这两个属性虽然允许被设置,但它们只对新生成的...无上下文 使用反射发出生成的瞬态程序集只能选择在没有下文的情况下进行加载。在没有上下文的情况下进行加载是将具有同一标识的多个程序集加载到一个应用程序域中的唯一方式。这将省去探测成本。...使用 ILRepack / ILMerge 合并依赖 前面我们说过,加载位置上下文中的程序集可以依赖默认加载上下文中的程序集,而反过来却不行。...关于使用 ILRepack 合并依赖的内容,可以阅读我的另一篇博客: .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 - walterlv 首先推荐使用 ILRepack...来进行合并,如果你愿意,也可以使用 ILMerge: .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 ---- 参考资料 Loading .NET Assemblies out

    36730

    C# 将dll打包到程序中 ILMerge

    本文告诉大家如何把 dll 打包到程序中。很多时候的 软件 在运行的时候需要包括很多 dll 或其他的文件,这样的软件在给其他小伙伴,就需要做一个压缩包,或者用安装软件。...这样感觉不太好,所以本文告诉大家一个方法,把所有的 dll 放在一个文件,于是把自己的软件给小伙伴就只需要给他一个程序。...ILMerge 首先下载 ILMerge 然后安装,感觉安装很简单 假如有 1.exe 和 1.dll 准备把 1.dll 合并到 2.exe 那么可以使用下面代码 ilmerge /target:...exe /out:E:\2.exe /log E:\1.exe /log E:\1.dll /targetplatform:v4 这里的 target 为目标平台 out 就是输出的文件 log 就是准备合并的...参见:http://www.cnblogs.com/blqw/p/LoadResourceDll.html ILMerge将源DLL合并到目标EXE - HackerVirus - 博客园 ----

    1.5K10

    使用ILMerge将源DLL合并到目标EXE(.NET4.6.2)

    本文主要是使用微软的ILMerge工具将源DLL合并到目标EXE,因此,需要下载以下工具: https://www.microsoft.com/en-us/download/details.aspx?...点击IDE上的运行按钮,启动生成,如下图所示,将在bin/debug文件夹下生成以下文件: ?...如果要运行以上程序,ConsoleApp12.exe 与 Newtonsoft.Json.dll 是必不可少的,但这样子看起来好别扭,如果能合并成一个文件,多好啊。...下面的工作将对以上两个文件进行合并,会使用以上介绍的ILMerge.exe工具。 假如在D盘上的Test文件夹,将对以上两个文件进行合并,如下图所示: ?...点击新生成的New_ConsoleApp12.exe,程序将正常地运行,如下图所示: ? 我们可以使用ILSpy.exe查看刚才合并之后的New_ConsoleApp12.exe,如下图所示: ?

    3.6K00

    仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢?

    平时我们获取一个程序集或者类型的 Attribute 是非常轻松的,只需要通过 GetCustomAttribute 方法就能拿到实例然后获取其中的值。...但是,有时我们仅为反射加载一些程序集的时候,获取这些元数据就不那么简单了,因为我们没有加载目标程序集中的类型。 本文介绍如何为仅反射加载的程序集读取 Attribute 元数据信息。...---- 仅反射加载一个程序集 使用 ReflectionOnlyLoadFrom 可以仅以反射的方式加载一个程序集。...assembly.GetCustomAttributesData(); foreach (CustomAttributeData data in customAttributesData) { // 这里可以针对每一个拿到的慝的信息进行操作...} 比如我们要获取这个程序集的版本号,正常我们写 assembly.GetCustomAttribute().Version,但是这里我们无法生成

    2.3K30

    不同程序集,名称空间类名和方法签名都一样的方法,如何调用

    有时候,你可能会遇到这样的问题,不同程序集,名称空间类名和方法签名都一样的方法,如何调用。本文将介绍如何通过别名的方式来解决这个问题。...创建两个不同的程序集 我们来创建两个不同的程序集,但是他们的名称空间一样: dotnet new classlib -o ClassLibrary1 -n ClassLibrary1 dotnet new...我们可以通过别名的方式来解决这个问题,首先修改项目文件,设置两个程序集的别名: 程序集合并成一个程序集。...总结 通过别名的方式,我们可以解决不同程序集,名称空间类名和方法签名都一样的方法,如何调用的问题。 参考 extern alias (C# Reference)^1

    18020
    领券