【发布时间】:2011-04-12 12:49:09
【问题描述】:
我已阅读有关 MSI 安装的所有 stackoverflow 文章,但我找不到解决问题的方法:
我有一个包含 5 个项目的 VS2010 解决方案,所有项目都针对 .NET 2.0:
- DLL A,无项目引用
- DLL B,引用 DLL
- 一个 Windows 窗体应用程序,引用 DLL B
- Windows 服务,引用 DLL B
- 设置项目
DLL A 和 DLL B 设置为在安装时安装到 GAC。我想在安装完成后启动服务,但根据我所阅读的内容,直到最后一步才注册程序集。我已经通过尝试在我的 ServiceInstaller 类的 AfterInstall 事件上启动服务来证明这一点,我收到以下错误:
错误 1001。无法加载文件或 程序集“DLL_B”,版本 1.0.0.1, 文化=中性, PublicKeyToken=5e297270603814f4' 或 它的依赖项之一。系统 找不到指定的文件。
当然,一旦安装完成,我可以手动启动服务,它运行良好。此外,在 Windows XP 中,我通常可以在应用程序启动时启动服务(我有一个复选框,其中包含启动应用程序作为安装程序的最后一步)。但在 Windows 7 中,此时权限不再提升,启动服务会引发错误。
如何在不强制重启的情况下实现服务的安装和启动?引用我的客户的话:“现在是 2011 年,这不应该是必要的。”我完全同意。
提前谢谢。
【问题讨论】:
标签: dll windows-services installation windows-installer setup-project