我继承了一个将“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,确定它不包含我的更改。我想这意味着安装程序无法正常工作,我需要手动安装它。
干杯
答案 0 :(得分:0)
看看这个here,它将向您展示如何在GAC中正确安装。
示例代码使用WIX。
答案 1 :(得分:0)
关闭此主题,因为原始问题的评论中的讨论涵盖了所有内容。
答案 2 :(得分:0)
使用Installshield工具可以轻松地将DLL添加到GAC,为此,只需添加组件并使功能与组件关联并将destination
字段更改为[GlobalAssemblyCache]YourComponyName
。
要记住的唯一重要通知是,您的DLL必须具有“强名称”,以避免与GAC中的其他DLL进行冲突命名。