2012-02-15 84 views
0

我有一個.NET DLL,我使用regasm.exe作爲瀏覽器幫助對象註冊。我使用.res文件和/ win32切換到csc.exe,在DLL中嵌入了多個Win32資源。通過res協議訪問已註冊.NET DLL中的資源

image.png HTML "image.png" 

我能夠使用res protocol只要我包括DLL的絕對路徑訪問的資源。

res://C:\Path\To\My\Dll\Assembly.dll/image.png 

這很不幸。我寧願只是引用的程序集的名字,因爲我在許多其他examples看到:

res://Assembly.dll/image.png 

但是這將導致一個錯誤,因爲瀏覽器無法找到資源。

想法?

回答

1

我認爲有一些事情可以做。首先,如果你不想被迫使用完整路徑,我相信你的程序集需要成爲全局程序集緩存的一部分。

Add assembly to global assembly cache.

這不是漂亮,你還必須記住,該DLL的較新版本將是在緩存中的版本不同。所以它基本上是另一個額外的步驟,這將導致我們回到接受不得不放在完整的道路上。

其次,另一種解決方案,我相信,作品將放置在VS實用程序或您嘗試使用其他資源相同的目錄中。這可能適用於人們可能想要做的多種不同事情,但需要手動移動文件。

第三,你創建了一些自定義的環境變量來代表你所需要的路徑。因此,不要在將來輸入完整路徑,而只需輸入變量。

第三個選項是我最喜歡的,我用於多種不同的事情,我需要從命令行完成。