2015-10-13 45 views
0

我已經制作了一個C#類庫,它使用公司其他人制作的其他dll,用於COM互操作。它與MS Excel 2013一起使用,在我的開發機器上正常工作。使用安裝程序部署C#COM DLL

要在其他機器上測試它,我已將輸出(dll和.tlb文件)複製到我的系統32文件夾中。然後,我使用regasm註冊了dll(使用/ codebase參數)。最後,我在Excel VBA編輯器中添加了對.tlb的引用。雖然這對6個dll來說有些乏味,但是regasm工作正常。

下一步是將Excel工作表分發給公司中的相關用戶,其中大多數用戶位於世界不同地區的不同部門。這意味着我不知道需要安裝哪些程序(例如.net 4.5)。另外,由於公司大多數人對命令行知之甚少,使用上述過程不僅有點乏味,而且令人不安。因此我想做一個安裝程序。

由於我使用VS2013,我有installed a plug在那允許我做一個安裝文件。

我發現了this的問題,這與我的問題幾乎相同,但我不需要GAC部分。我如何根據需要修改程序? - 我試圖按照給定的程序,但我得到一個錯誤,說明我自己使用的DLL之一,沒有強大的名稱,不能在GAC中。因此構建失敗。我如何糾正上述情況? - 我是否需要修復dll,還是可以在沒有GAC部分的情況下執行此操作?

如何自動執行我的dll(s)的安裝過程? - 現在的替代方案是將VS2013推廣給用戶,讓他們運行項目並以此方式註冊(VS表達是否足夠?)。

在此先感謝 - 我從沒有經驗的項目開始這個項目,所以學習曲線有點陡峭。

+0

使用ILSpy,我可以看到安裝程序內部失敗的dll有publictoken = Null。我認爲這是我的問題的根源。也許我可以讓它工作,如果我得到修復,並嘗試再次建立一個安裝程序。 – Anima

回答

0

我不清楚你到底想要做什麼,但該鏈接確實告訴你如何註冊Dlls - 只要看看每個Dll的屬性並設置註冊屬性即可。您也可以將您的tlb文件添加到您的設置中,並將其標記爲已註冊。如果這不是你想要做的,那麼編輯這個問題。

p.s.不要將tham放在系統文件夾中 - 將它們放在公司的/ app的公共文件夾中。

+0

嗨菲爾 簡而言之,我已經從C#中的類項目中創建了一個dll和tlb文件。當項目使用C#構建時,它會爲我註冊dll。當我需要部署它時,我通常會使用regasm。我需要做一個安裝程序,因爲我的老闆不希望用戶使用regasm,因此需要一個安裝程序來爲他們進行註冊。 – Anima

相關問題