Visual Studio工具名称

1、Sn.exe(强名称工具)

        强名称工具 (Sn.exe) 有助于使用强名称对程序集进行签名。  Sn.exe 提供用于密钥管理、签名生成和签名验证的选项。

下面的命令创建一个新的随机密钥对并将其存储在 keyPair.snk 中。

sn -k keyPair.snk

下面的命令将 keyPair.snk 中的密钥存储在强名称 CSP 中的容器 MyContainer 中。

sn -i keyPair.snk MyContainer

下面的命令从 keyPair.snk 中提取公钥并将其存储在 publicKey.snk 中。

sn -p keyPair.snk publicKey.snk

下面的命令显示公钥和 publicKey.snk 包含的公钥的标记。

sn -tp publicKey.snk

下面的命令验证程序集 MyAsm.dll

sn -v MyAsm.dll

下面的命令从默认 CSP 中删除 MyContainer

sn -d MyContainer

2、Al.exe(程序集链接器)


程序集链接器从一个或多个文件(可以是模块,也可以是资源文件)生成一个具有程序集清单的文件。  模块是没有程序集清单的一个中间语言 (IL) 文件。
说明   说明
若要避免受到在 Windows Vista 计算机的虚拟化,该程序集必须由指定请求的执行级别的 Win32 清单。 当使用 al.exe 直接从命令行时,可以只嵌入在 Win32 资源文件的清单或使用 mt.exe 后追加清单在生成过程中。 从 Visual Studio 2008开始,Visual C# 和 Visual Basic 编译器自动 Win32 清单嵌入到程序集中。

以下命令使用 t2.netmodule 模块中的程序集创建可执行文件 t2a.exe。 入口点是 MyClass 中的 Main 方法。

al t2.netmodule /target:exe /out:t2a.exe /main:MyClass.Main

3、Gacutil.exe(全局程序集缓存工具)

全局程序集缓存工具使您可以查看和操作全局程序集缓存和下载缓存的内容。
说明 说明

必须具有管理员特权才能使用 Gacutil.exe。

具体说来,Gacutil.exe 使您得以将程序集安装到缓存中、从缓存中移除程序集以及列出缓存的内容。

Gacutil.exe 提供支持引用计数的选项,类似于 Windows Installer 所支持的引用计数方案。 您可以使用 Gacutil.exe 安装两个安装同一程序集的应用程序;全局程序集缓存工具跟踪对该程序集的引用数。 结果是,该程序集将一直保留在计算机上,直到卸载这两个应用程序为止。 如果将 Gacutil.exe 用于实际产品安装,请使用支持引用计数的选项。 同时使用 /i 和 /r 选项可以安装程序集并添加引用对其进行计数。 同时使用 /u 和 /r 选项可以移除对程序集的引用计数。 注意,单独使用 /i 和 /u 选项不支持引用计数。 这些选项在产品开发期间适用,但不适用于实际的产品安装。

使用 /il 或 /ul 选项可以安装或卸载存储在 ANSI 文本文件中的程序集。 该文本文件中的内容必须具有正确的格式。 若要使用文本文件安装程序集,请在文件中的单独一行上分别指定每个程序集的路径。 下面的示例说明了包含要安装的程序集的文件的内容。

myAssembly1.dll
myAssembly2.dll
myAssembly3.dll

若要使用文本文件卸载程序集,请在文件中的单独一行上分别为每个程序集指定完全限定的程序集名称。 下面的示例说明了包含要卸载的程序集的文件的内容。

myAssembly1,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly2,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly3,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab

以下命令将程序集 mydll.dll 安装到全局程序集缓存中。

gacutil /i mydll.dll

以下命令从全局程序集缓存中移除程序集 hello(只要不存在对该程序集的引用计数)。

gacutil /u hello

请注意,上面的命令可能会从程序集缓存中移除多个程序集,原因是程序集名称不是完全指定的。 例如,如果在该缓存中安装有 hello 的 1.0.0.0 和 3.2.2.1 两个版本,则gacutil /u hello 命令会将这两个程序集都移除。

使用下面的示例以避免删除多个程序集。 该命令只删除与完全指定的版本号、区域性和公钥匹配的 hello 程序集。

gacutil /u hello, Version=1.0.0.1, Culture="de",PublicKeyToken=45e343aae32233ca

以下命令将 assemblyList.txt 文件中指定的程序集安装到全局程序集缓存中。

gacutil /il assemblyList.txt

以下命令从全局程序集缓存中移除 assemblyList.txt 文件中指定的程序集。

gacutil /ul assemblyList.txt

以下命令将 myDll.dll 安装到全局程序集缓存中并添加引用对其进行计算。 程序集 myDll.dll 由应用程序 MyApp 使用。 UNINSTALL_KEY MyApp 参数指定将 MyApp 添加到 Windows“添加/删除程序”中的注册表项。 description 参数被指定为 My Application Description

gacutil /i /r myDll.dll UNINSTALL_KEY MyApp "My Application Description"

以下命令将 myDll.dll 安装到全局程序集缓存中并添加引用对其进行计算。 scheme 参数 FILEPATH 和 id 参数 c:\applications\myApp\myApp.exe 指定要安装 myDll.dll. 应用程序的路径。description 参数被指定为 MyApp

gacutil /i /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

以下命令将 myDll.dll 安装到全局程序集缓存中并添加引用对其进行计算。 scheme 参数 OPAQUE 允许您自定义 id 和 description 参数。

gacutil /i /r mydll.dll OPAQUE "Insert custom application details here" "Insert Custom description information here"

以下命令移除应用程序 myApp 对 myDll.dll 的引用。 如果这是对该程序集的最后一个引用,则将同时从全局程序集缓存中移除该程序集。

gacutil /u /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

下面的命令列出全局程序集缓存的内容。

gacutil /l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值