逐步解說:建立 Managed 附屬 DLL
如果要將資源檔 (例如圖示、點陣圖和資源字串) 儲存於集中式的位置以供在增益集和其他 Automation 專案中使用,附屬 DLL 會非常好用。 附屬 DLL 可由其他專案或增益集重複使用。 此外,將字串和增益集的其他資源區分開來,可更容易的做出集中式變更,或將資源當地語系化為不同的語言。
舊版的 Visual Studio 是使用 SatelliteDllPath 和 SatelliteDllName 的登錄項目。 不過,登錄項目現在已由 .addin 登錄檔案中的項目所取代。 當您的專案需要資源而要載入增益集時,Visual Studio 會查詢增益集的附屬 DLL。 因此,您不需要硬式編碼資源路徑。 同時,不要使用 #id 方法指定資源 ID,而是使用 @resource name (此處的 resource name 是您的資源名稱,例如 @Icon1 或 @String1),而 @ 符號會告知 Visual Studio 在附屬 DLL 中尋找資源。
建立 Managed 附屬 DLL
下列步驟示範如何建立包含圖示和字串資源的附屬 DLL,以及如何修改增益集以存取這些資源。 它所使用的增益集具有需要圖示和字串資源的 [關於] 對話方塊。 通常,如果您建立具有 [關於] 對話方塊的增益集,系統就會提供預設的圖示和文字。 下列步驟也示範如何使用自己的圖示和文字來取代預設的圖示和文字。
若要建立 Managed 附屬 DLL
在 [檔案] 功能表上,按一下 [新增],然後按一下 [專案]。
在 [新增專案] 對話方塊中,展開 [其他專案類型],然後選取 [擴充性專案]。
在 [範本] 窗格中,選取 [Visual Studio 增益集]。
依照 [Visual Studio 增益集精靈] 的指示進行。 在 [[關於] 對話方塊資訊選擇] 頁面中,選取 [是,我希望增益集可以提供 [關於] 對話方塊資訊]。 接受其餘的預設選項。
在 [專案] 功能表上,按一下 [加入參考]。
在 [.NET] 索引標籤上按一下 [System.Drawing],然後按一下 [確定]。
以滑鼠右鍵按一下 [方案總管] 中的增益集專案,按一下 [加入],然後按一下 [新增項目]。
選取 [範本] 清單中的 [資源檔],按一下 [加入]。 接受它的預設名稱 (Resources1.resx)。
根據預設,這會建立名為 Resource1.resx 的資源檔並啟動 Visual Studio 的 [資源編輯器]。
在 Resource1.resx 中,選取 [字串] 清單中的 [圖示] (頂端最左邊的按鈕)。
在 [加入參考] 清單中按一下 [加入新圖示]。 現在暫時保留預設名稱 (Icon1.bmp) 並按一下 [加入]。
此外,您可以為圖示選取現有的點陣圖影像,只要該影像為 16 x 16 像素且為 16 色或全彩。
在 [圖示編輯器] 中開啟圖示之後,請使用工具來修改它。 當您完成時,請關閉 [圖示編輯器] 並儲存變更。
選取 [加入資源] 清單中的 [加入新字串]。
按一下 [名稱] 欄中的第一個方塊。
這會建立名為 String1 的預設字串資源。
在 [值] 方塊中輸入 Line one。
這是第一個字串資源的值。
再多建立兩個字串資源,將它們命名為 "Line two" 和 "Line three"。
關閉 [資源編輯器] 並儲存變更。
在 [方案總管] 中,以滑鼠右鍵按一下 Resource1.resx,然後按一下 [屬性]。
在 [屬性] 視窗中,將 [建置動作] 從 [內嵌資源] 變更為 [無]。
這會避免資源建置至增益集組件。
建置專案。
建立附屬資源 DLL。 這可以用兩個步驟的處理序來完成,方法是先使用 ResGen,然後使用 AL (組件連結器) 來建置附屬 DLL。
依序按一下 [開始]、[所有程式]、[Microsoft Visual Studio 2010]、[Visual Studio Tools],再按一下 [Microsoft Visual Studio 命令提示字元 (2010)]。
這會設定某些環境變數,讓您可以更容易參考 Visual Studio 工具。
在命令提示字元中,移至包含 .resx 檔的資料夾,然後輸入 Resgen Resource1.resx。
Resgen 是將指定的 .resx 檔編譯為 .resources 檔的公用程式。 如需詳細資訊,請參閱 Resgen.exe (資源檔產生器)。
在命令提示字元中輸入 AL.exe /embed:Resource1.resources /culture:en-US /out:Add-In Name.resources.dll。
使用您的增益集名稱取代 Add-In Name。 例如,如果您的增益集專案已命名為 MyAddin,則 /out: 參數會是 /out:MyAddin.resources.dll。 /out: 名稱必須符合專案的名稱,否則會找不到資源 DLL。
組件連結器 (AL.exe) 會將指定的 .resources 檔轉換成您可在增益集中參考的 DLL (您可以將 /culture 參數變更為英文以外的其他語言)。如需詳細資訊,請參閱 Al.exe (組件連結器)。
在檔案總管中,瀏覽至增益集的 DLL 目錄並建立資料夾。\en-US\ (for English US, because you typed en-US as the culture value in AL .exe)。
將 Add-In Name.resources.dll 檔複製到新的 \en-US\ 資料夾。
在檔案總管中,瀏覽至\Addins \目錄,通常是。 \Documents and Settings\user name\My Documents\Visual Studio 2010\Addins\。
如下所述,修改 Visual Studio 增益集定義檔案:
以滑鼠右鍵按一下您增益集的增益集定義檔案,按一下 [開啟方式],再按一下 [記事本]。
取代下列標籤:
<FriendlyName>@String1</FriendlyName> <Description>@String2</Description> <AboutBoxDetails>@String3</AboutBoxDetails> <AboutIconData>@Icon1</AboutIconData>
Friendlyname 項目會將您的增益集重新命名為 Line1,這是您在 Resource1.resx 檔中為 String1 所輸入的名稱。 在 [關於] 對話方塊中的描述現在會包含 "Line2",而 AboutIconData 項目會比對您為 [關於] 對話方塊建立的圖示。
將 .resources 插入組件名稱的副檔名前面。
重新建置專案,並選取 [增益集管理員] 中的增益集。
在 [說明] 功能表上按一下 [關於 Microsoft Visual Studio],並在清單中選取 [Line1] (您的增益集名稱)。
隨即顯示自訂圖示和您所建立的三個字串。