簡體   English   中英

COM-Interop:將.NET Framework版本從2.0更改為4.0 - 我是否也應該更改Guids?

[英]COM-Interop: Change .NET Framework Version from 2.0 to 4.0 - Should I change the Guids also?

我喜歡將COM-Class從2.0遷移到4.0。 您是否還建議為類和不同的ProgId生成新的guid?

舊的課程將不再使用。 我知道我必須為mscorlib的新路徑重新注冊Class。

MS-Access使用CreateObject創建一個我的COM-Server類的實例,我的COM-Object使用DI加載一些其他類(dot.net 2.0和將來的4.0)

您只需在接口定義更改時使用新的GUID。 當它們保持不變時,新的COM服務器將替換現有的COM服務器。 並且不必重新編譯使用它的客戶端代碼。 改變他們,那么他們可以生活並排的一面,但客戶端代碼必須明確地重新編譯以使用新的一個。

請注意,.NET 4.0中的進程內並行CLR版本支持與此相關。 您的COM服務器可以在綁定.NET 4.0 CLR的程序中使用,即使COM服務器仍然綁定2.0 CLR。 從技術上講,您不必更新它。

我不明白你為什么會改變Guid或者progid。 這意味着您必須重新編譯此引用的所有內容。

只要你堅持二進制兼容性 ,你的合同的實現是什么版本的框架並不重要,它只是一個實現細節。

我遷移到DOT.net 4.0並進行了一些測試。 DOT.net 4.0可以使用2.0程序集,對我的DI場景沒問題。

我唯一需要做的就是更新我的安裝程序。 原因是,因為HKEY_CLASSES_ROOT \\ CLSID {COMGuid}控制了它必須使用的運行時版本。

“RuntimeVersion”= “v4.0.30319”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM