通过安装程序msi部署到GAC

时间:2012-11-08 21:59:38

标签: windows-installer installation gac

我继承了一个将“common”assemlby(DLL)部署到GAC的项目。 在Setup项目中,Common的Primary输出的Properties窗口将Folder属性指定为Global Assembly cache。

但是,当我在Windows资源管理器中导航到GAC时,我找不到该程序集的任何痕迹。

我必须假设它在那里,因为它包含DAL并且数据库正在被击中。

在项目本身中,我注意到在AssemblyInfo.cs文件中,以下行被注释掉:[assembly:AssemblyKeyFile(“”)]和[assembly:AssemblyKeyName(“”)]

但是在签名选项卡上,指定了一个键,并选中了Sign the Assembly复选框。

我只想了解为什么它没有在GAC中列出(通过shfusion.dll - viewer)。我修复了一些错误,并希望将更新后的dll部署到GAC,而无需手动执行此操作。

[edit]我终于在GAC中找到了dll并使用Decompiler,确定它不包含我的更改。我想这意味着安装程序无法正常工作,我需要手动安装它。

干杯

3 个答案:

答案 0 :(得分:0)

看看这个here,它将向您展示如何在GAC中正确安装。
示例代码使用WIX。

答案 1 :(得分:0)

关闭此主题,因为原始问题的评论中的讨论涵盖了所有内容。

答案 2 :(得分:0)

使用Installshield工具可以轻松地将DLL添加到GAC,为此,只需添加组件并使功能与组件关联并将destination字段更改为[GlobalAssemblyCache]YourComponyName 。 要记住的唯一重要通知是,您的DLL必须具有“强名称”,以避免与GAC中的其他DLL进行冲突命名。