簡體   English   中英

使用REGASM&COM時,GAC不在的程序集的多個搜索路徑

[英]Multiple search paths for assemblies not in the GAC when using REGASM & COM

我正在創建一個將為COM注冊的.NET程序集,以便Microsoft Excel VBA可以引用它。

該程序集引用了不在GAC中的第三方.NET程序集(包含一些有用的類),但是,我的程序集部署存在問題,因為指向第三方程序集的路徑並不總是在相同的位置(取決於用戶的語言環境以及第三方程序集的最新安裝時間)。

這意味着在部署我的程序集(使用REGASM)時,根據其安裝所在的系統,REGASM有時會崩潰,因為它找不到我的程序集對第三方程序集的依賴。

理想情況下,我想在程序集中使用早期綁定,但是如果我這樣做並且第三方程序集的路徑與Visual Studio中的引用不同,則REGASM將失敗。

我意識到“復制本地”(在VS中)可以解決此問題,但是由於有時會修補第三方程序集,因此我真的不希望將其過時的版本保留在與我的程序集相同的文件夾中。

有沒有一種解決方法,這樣我就不必使用“本地復制”了? 我想我可以使用某種形式的第三方程序集的動態負載,但是仍然可以使用早期綁定嗎? (REGASM會起作用嗎?)

為什么不首先使用“復制本地”,並在應用程序啟動時有一個例程,該例程會列出較新版本可能存在的位置列表,並覆蓋(或在無法訪問時安排覆蓋)等。如果可能的話。

此外,您可能希望為用戶提供一個選項,以手動設置從其開始打開dll的位置,然后您始終(或按需)檢查較新的版本。

另一個方面是,如果您的應用程序的功能取決於特定版本,為什么還要更新新的程序集,因為如果他們更改了功能,或者他們厭倦了您正在編寫的程序,由於更新將失敗,這只是一個想法。 。

暫無
暫無

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

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