1

我继承了一个将“通用”程序集(DLL)部署到 GAC 的项目。在 Setup 项目中,Common 的 Primary 输出的 Properties 窗口将 Folder 属性指定为 Global Assembly 缓存。

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

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

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

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

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

[编辑] 我终于发现 GAC 中的 dll 并使用反编译器,确定它不包括我的更改。我想这意味着安装程序不起作用,我需要手动安装它。

干杯

4

3 回答 3

0

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

于 2012-11-12T02:32:33.190 回答
0

只是关闭这个线程,因为原始问题评论中的讨论涵盖了所有内容。

于 2012-11-20T00:32:11.127 回答
0

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

于 2015-05-19T03:51:52.627 回答