嘿,我想知道你們是否可以看到有什麼問題/提出解決方案。註冊了一個COM組件,但只能在開發計算機上工作
我有一個COM,我用C#建立了一個DLL組件,我試圖擺脫的Silverlight外的瀏覽器中的COM對象。我希望siverlight應用程序可以在計算機之間移動,所以我把所有必要的文件放在一個zip文件中,以及一個批量安裝程序,它會執行以下注冊程序集:
cd%windir%\ Microsoft.NET \ Framework \ v4 .0.30319 \ RegAsm.exe「%USERPROFILE%\我的文檔\作業時鐘\ windowsHook.dll」/TLB/NOLOGO
我的應用程序找到組件和它的作品我的開發計算機上的罰款,但是當我將我的應用到測試計算機(以及dll和任何其他必要文件),我的批處理文件表示它已成功註冊,但應用程序未找到它。
然而,當我重建測試計算機上用C#的組裝和更換i。從dev的計算機與所述重建的dll移動的DLL中,應用程序發現它細。如果他們不需要使用C#重新編譯程序集,如果他們希望使用我的應用程序,那對我的客戶來說很方便,所以我想知道是否有辦法解決這個問題。
我看了一會兒這個問題,並認爲這可能是因爲我的程序集並不是一個強有力的命名程序集,因爲我認爲C#會自動執行此操作,所以我嘗試在我的批處理文件中執行此操作,識別生成加密密鑰所需的'al'和'sn'命令以給程序集一個強名稱,並且我嘗試在C#項目屬性的'簽名'選項卡中的 中執行該操作,但我遇到了同樣的問題。任何想法如何解決這一問題?
在此先感謝
感謝,我得到了現在的DLL強命名,我想我不得不使用批處理文件命令:d,如果你不打算把組件安裝到GAC – Austin 2011-02-18 00:09:32
強名稱不是必需的。 – sharptooth 2011-02-18 06:00:39