使用biztalk server进行开发时,有时可能需要调用已经写好程序集里的函数。对于这种情况,需要将调用的程序集安装到全局程序缓存(global assembly cache)中。否则,在biztalk server的日志中可能会看到如下的错误日志:
事件类型: 错误
事件来源: xlang/s
事件种类: 无
事件 id: 10034
日期: 2006-8-25
事件: 13:01:18
用户: n/a
计算机: uitv-fang
描述:
未捕获的异常终止了服务 callfunction.mainorch(f87583a7-9607-1e6b-7d79-2546662c7f19),实例 156a7c0e-2cea-4a56-b53b-213af7d7203d could not load file or assembly myfunction, version=1.0.2428.22802, culture=neutral, publickeytoken=3027498b2c98444d or one of its dependencies. 系统找不到指定的文件。
异常类型: filenotfoundexception
源: callfunction
目标站点: microsoft.xlangs.core.stopconditions segment1(microsoft.xlangs.core.stopconditions)
帮助链接:
其他错误信息:有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
要将程序集安装到gac中,首先要为程序集赋一个强名(strong name),其实是用于签名的密钥。
1.选择“开始\所有程序\microsoft visual studio .net 2003\visual studio .net 工具\visual studio .net 2003 命令提示”菜单,进入.net 2003命令提示窗口。
2.在命令提示中输入:sn -k c:\yoursnfile.snk。
3.打开要安装的项目assemblyinfo.cs文件,找到[assembly: assemblykeyfile(“”)]代码,为其加入密钥文件:
[assembly: assemblykeyfile(@”c:\yoursnfile.snk”)]
4.重新编译项目。
5.重新回到.net 2003命令提示窗口,输入如下命令:
gacutil -i “c:\changetoyourpath\test.dll”
其中双引号的内容都实际的程序集文件名代替。