我使用Inno Setup创建我的设置。所有的工作都很好,但是我遇到了这个问题:如何注册.NET DLL以使其可以被COM +访问。因为我们都知道.NET为此带来RegSvcs.exe
,所以我查看了Inno安装文档,只发现了用于Assembly注册的gacinstall,但没有用于COM +交互。 所以我在[Run]
部分Com + Intero注册Inno Setup
; register .Net components for com+
Filename: {win}\Microsoft.NET\Framework\v4.0.30319\RegSvcs.exe; Parameters: "{app}\bin\Common.dll"; Description: Component registration; WorkingDir: {app}\bin; StatusMsg: Component registration...; Flags: waituntilterminated
但是通过测试此行只是跳过设置添加此。 DLL在[Files]
部分之前被复制到目标并且可用。 设置后,我可以手动运行RegSvcs.exe从命令行以及没有问题。
只是一个提示(不是解决您的问题),您可以在文件路径中使用'{dotnet40}'常量来获取.NET 4.0路径,具体取决于安装程序运行的模式(32位或64位),或者使用'{dotnet4032}'获得32位.NET 4.0路径或'{dotnet4064}'用于64位。它消除了你的路径硬编码。 – TLama 2012-08-14 08:50:54
但是你所描述的很奇怪,从第一次看它看不出什么错误(也许我会删除'WorkingDir',但它应该不是我想的问题)。无论如何,你使用的Windows版本是Vista吗?如果是这样,你运行你的设置提升为管理员? – TLama 2012-08-14 09:19:18
目标平台通常是赢得2008 R2系统。安装程序始终以管理员权限运行。 – YvesR 2012-08-14 09:24:19