首页
学习
活动
专区
工具
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 命令行如何使用呢?它参数列表是怎样呢?

1.4K30

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

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

91150

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

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

96630

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

14910

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

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

12710

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

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

23020

提取Chrome中Cookie工具分享

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

1.7K20

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

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

22820

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

使用生成对抗网络照片编辑(第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就被加载到程序中了.

3.7K20

.NET 程序加载上下文

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

26530

使用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.3K00

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.4K10

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

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

1.3K20

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

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

2.2K30

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

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

14620
领券