2015-10-13 44 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

相关问题