對于 VB.NET Office VSTO 解決方案,我想開始使用元組。
讓我有些擔心的是 .NET Framework 方面的這一要求。
在 .NET Framework 4.7 之前不支持 VB.NET 元組,請參閱此處的 Microsoft 資訊。
我不介意需要 .NET Framework 4.7 或更高版本,但我擔心 Office 應用程式(在本例中為 Visio,但也為 Excel 開發)中運行的其他 VSTO 插件會出現問題,這些插件需要舊版本的 .NET。
到目前為止,我已將解決方案限制為使用 .NET Framework 3.5 兼容功能。我不介意要求安裝 .NET Framework 4.7 或更高版本,但我想避免同時運行的其他 VSTO 加載項出現問題。
當多個 Office VSTO 加載項同時運行但需要不同的 .NET Framework 時會發生什么?我在 Microsoft 網站上找不到關于此的明確資訊。
感謝您分享您的見解!
uj5u.com熱心網友回復:
VSTO 加載項在不同的應用程式域中運行。因此,您的加載項可以使用不同的 .net 框架版本。但是CLR是一樣的。我會解釋為什么...
CLR 與其他 DLL 相同:在 RAM 中只有一份 CLR 代碼副本。該副本被映射到每個執行 CLR 代碼的行程的虛擬記憶體頁中。包含 CLR 資料(堆等)的頁面對于每個行程(和 AppDomain)都是唯一的。
因此,您不能在同一行程中運行多個 CLR 版本(不是 .net 框架版本)。但是您可以在宿主應用程式組態檔中配置目標 CLR。
如果應用程式組態檔包含指定一個或多個 .NET Framework 版本的條目,并且其中一個版本存在于用戶的計算機上,則應用程式將在該版本上運行。組態檔按照條目列出的順序讀取條目,并使用用戶計算機上列出的第一個 .NET Framework 版本。(使用版本 1.0 的元素。)
您會發現CLR Inside Out - In-Process Side-by-Side文章很有幫助。
uj5u.com熱心網友回復:
您不會有任何問題 - 所有 VSTO 插件都在其自己的環境中運行,并使用插件請求的確切版本的 .Net 運行時。可以在給定行程 (outlook.exe) 中加載多個版本的 .Net 運行時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/426199.html