在 LabVIEW 中切換不同版本的 .NET Assemblies

更新 Apr 11, 2024

產品資訊

軟體

  • LabVIEW

程式語言

  • Visual Basic .NET

問題敘述

我有一個 LabVIEW 程式,可以使用兩個不同的assemblies。我希望能夠選擇要載入的assembly。兩個assemblies具有完全相同的名稱,但具有不同的版本號。我如何選擇 LabVIEW 將載入哪個assembly?

解決方案

選項 1 一次僅將一個assembly載入到 GAC(Global Assembly Cache)中
由於LabVIEW的動態特性,應用程式只會找到並載入GAC中存在的assembly。

注意:如果新assembly包含附加方法和屬性,您仍需要使用下面選項 2 或 3 中列出的設定檔案,以便使用附加方法和屬性正確更新 LabVIEW Constructor Node。

選項 2 兩個assemblies均存在於 GAC 中
您可以使用.NET設定檔來選擇您的LabVIEW project/shared library/stand alone application (executable) 應使用的assembly版本。例如,如果LabVIEW project的名稱為Test.lvproj ,則設定檔的名稱應命名為Test.lvproj.config 。設定檔應與您嘗試變更的LabVIEW project位於相同資料夾中。有關詳細資訊,請查看設定 .NET 客戶端應用程式。下面列出了一個範例設定檔。
注意:可以把多個舊版本的其中一個重新定向到新版本。這可以透過在bindingRedirect tag內指定oldVersion參數作為版本範圍而不是單一版本號來完成。例如nnnn - nnnn

選項 3 兩個assemblies不需要都出現在 GAC 中
您仍然可以使用.NET設定檔來選擇您的LabVIEW project/shared library/stand alone application (executable)應使用的assembly版本。有關詳細資訊,請參閱設定 .NET 客戶端應用程式

如果您要瀏覽到特定資料夾以選擇assembly,請使用下列設定。這裡唯一的差別是,提到了assembly的路徑<probing privatePath="Assembly\ver2"/> ,其中Assembly\ver2是專案內的子資料夾。該路徑必須相對於設定檔所在的位置。它強制 VI 在其他資料夾之前先搜尋特定資料夾,從而選擇正確的版本。
設定檔注意事項:
  • 設定檔適用於 LabVIEW 8.5 及更高版本。
  • assemblyIdentity name="Test" - Test表示assembly的名稱,並且必須與assembly的名稱完全匹配才能正常運作。
  • publicKeyToken="xee7d93a67000dr7" - 用於唯一辨識assembly。它是使用SN工具產生的。
  • oldVersion=" " newVersion=" " - 表示您目前使用的版本以及您想要使用的版本。
正確使用設定檔的步驟:
  1. 檢查以確保 LabVIEW 程式碼能夠在某一版本的assembly上正常運作。關閉 LabVIEW 專案和 LabVIEW。
  2. 開啟設定檔案,然後編輯程式碼以從目前版本變更為您想要使用的版本。
  3. 重新開啟 LabVIEW 和專案。然後執行 LabVIEW 程式碼。 LabVIEW 程式碼現在將使用您指定的assembly版本。

相關資訊

提示:從 LabVIEW 2011 開始,您可以使用記憶體中的.NET assembly對話方塊來驗證 LabVIEW 是否載入了正確版本的assembly。