1. 程式人生 > >Biztalk 開發之 將程式集安裝到全域性程式集快取(GAC)中

Biztalk 開發之 將程式集安裝到全域性程式集快取(GAC)中

使用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"

其中雙引號的內容都實際的程式集檔名代替。