.net 如何从InstallShield中的InstallScript项目向GAC添加DLL?

.net 如何从InstallShield中的InstallScript项目向GAC添加DLL?,.net,gac,installshield,installscript,.net,Gac,Installshield,Installscript,如何从InstallShield中的InstallScript项目向GAC添加DLL?我尝试将[GLOBALASSEMBLYCACHE]添加为组件的目标,但没有成功。它告诉我这不是目标的有效数据。仅安装脚本的项目无法将文件放入GAC。您需要一个安装脚本MSI项目。我最终创建了一个单独的windows安装程序,并使用install shield中的LauchAppAndWait来运行它。因为我不想切换到MSI项目,这几乎是一个黑客行为。Gacutil可以做到,但Gacutil不可再发行。您可以编写

如何从InstallShield中的InstallScript项目向GAC添加DLL?我尝试将[GLOBALASSEMBLYCACHE]添加为组件的目标,但没有成功。它告诉我这不是目标的有效数据。

仅安装脚本的项目无法将文件放入GAC。您需要一个安装脚本MSI项目。我最终创建了一个单独的windows安装程序,并使用install shield中的LauchAppAndWait来运行它。因为我不想切换到MSI项目,这几乎是一个黑客行为。

Gacutil可以做到,但Gacutil不可再发行。您可以编写自己的代码来调用fusion API,然后从installscript调用它,但实际上MSI要简单得多。

is脚本可以访问Win32和其他DLL条目,因此您不需要专用的MSI安装程序

我们的安装程序需要在安装过程的早期更改文件访问权限。我们在“支持文件和公告牌”部分添加了一个实用程序,这些实用程序最终位于安装程序的临时文件夹中。然后我们使用LaunchAppAndWait等


另一个选项可能是在注册.net程序集时将其自身修改为自动GAC。如果使用System.Configuration.Install&friends会更容易。

gacutil
可以做到这一点,只需将它放在supportdir(临时目录)中并从那里使用即可。然后清除temp dir。

您可以创建一个合并模块,将所需组件安装到GAC,而不是创建一个InstallScript MSI项目。然后将MSM包括在InstallScript cab安装中。这样你就避免了LaunchAppAndWait的麻烦