2

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

4

5 回答 5

1

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

于 2009-09-24T14:03:20.563 回答
1

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

于 2012-05-16T20:14:59.770 回答
0

Gacutil 可以做到,但 Gacutil 不可再分发。可以编写自己的代码来调用 fusion API,然后从 installscript 调用它,但事实上 MSI 更容易。

于 2009-10-02T03:11:04.430 回答
0

IS 脚本可以访问 Win32 和其他 DLL 入口点,因此您不需要专用的 MSI 安装程序。

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

另一种选择可能是在注册时将您的 .net 程序集修改为 auto-GAC 本身。如果使用 System.Configuration.Install 和朋友,那就更容易了。

于 2009-12-12T21:49:30.293 回答
0

gacutil可以做到,只需将其放入 supportdir(临时目录)并从那里使用它。然后在之后清除临时目录。

于 2010-09-27T16:09:33.820 回答