部署强命名程序集到GAC

上文私有部署应用程序升级策略中我们制作了SomeMethodLib.dll文件并通过私有部署方式应用,那么如何部署到GAC并使用呢。

1、通过VS命令提示工具中的Gacutil工具将SomeMethodLib.dll安装到GAC

gacutil /i SomeMethodLib.dll

2、查看是否正确部署

gacutil /l SomeMethodLib

3、更改.config文件,让CLR从GAC中尝试加载SomeMethodLib,注意已将CodeBase屏蔽掉了。

<configuration>
	<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
			<probing privatePath="NoSN;V1;V2;V3"/>

			<!--确定相关程序集 查找公钥为1217633aa9436597,语言文化为中性的版本号在1.0.0.1到1.0.0.2
			的程序集SomeMethodLib,定位为相同公钥相同程序集名称且版本号为1.0.0.3的程序集-->
			<dependentAssembly>
				<assemblyIdentity type="win32"
							  name="SomeMethodLib"
							  publicKeyToken="1217633aa9436597" culture="neutral"/>
				<!--<bindingRedirect oldVersion="1.0.0.1" newVersion="1.0.0.2"/>
				<codeBase version="1.0.0.2" href="V2/SomeMethodLib.dll"/>-->
				<bindingRedirect oldVersion="1.0.0.1-1.0.0.2" newVersion="1.0.0.3"/>
				
				<!--<codeBase version="1.0.0.3" href="V3/SomeMethodLib.dll"/>-->
				
				<publisherPolicy apply="no"/>
			</dependentAssembly>

		</assemblyBinding>
	</runtime>
</configuration>

4、运行DeployTest.exe,查看是否调用了SomeMethodLib

从运行结果上可以看到的确调用了版本1.0.0.3

5、从GAC中卸载SomeMethodLib

gacutil /u assemblyname

6、继续运行DeployTest.exe查看运行结果,查看我们是否调用的GAC中的SomeMethodLib

从运行结果可以看出,当SomeMethodLib被卸载后应用程序会抛出System.IO.FileLoadException异常。

使用Gacutil.exe的细节可查看MSDN文档:

Gacutil.exe

在给用户部署时会用到Gacutil.exe,可以在有VS的机器上查找Gacutil.exe很容易找到文件位置:C:\ProgramFiles\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值