【问题标题】:Installshield LE includes my GAC files from the primary output project even if Copy Local is false explicitly即使 Copy Local 明确为 false,Installshield LE 也会包含我的主要输出项目中的 GAC 文件
【发布时间】:2014-02-07 10:01:23
【问题描述】:

我的问题是一个简单的应用程序项目和一个带有一些 GAC 引用的类库项目,我将它们添加到文件部分(仅限应用程序项目的主要输出)。问题是安装程序真的想将项目中的所有非 Net GAC 文件添加到安装程序中,即使它们被明确设置为 Copy Local false(项目文件中为 false)。

我如何告诉 InstallShield 只使用 Copy Local 为 true 的依赖文件,而不是列表中的所有内容?

【问题讨论】:

  • Copy Local = False 是完全错误的设置。由于构建目录不再有副本,因此程序只有在 DLL 存储在 GAC 中时才能运行。它必须是真实的。当然,您必须部署您现在获得的副本,因为它不会在目标机器上的 GAC 中。一般来说,强烈避免将任何东西放在开发机器上的 GAC 中。
  • 文件已在目标服务器上的 GAC 中准备就绪。这就是它被设计为使用该程序集的方式。所以我想要一个干净的设置,不包括该程序集的副本(较新/相同/较旧)。我首选的方法是将其与项目保持一致。但是 InstallShield 似乎确实忽略了您在项目中设置的任何 Copy Local 设置。无论如何都需要它。正如我在下面回答的那样,您必须将其排除在安装程序项目中。
  • 奇怪。 “干净的设置”不是让我想到的词 :) 一定要把 GAC 存储多个版本的 DLL 的能力作为一个优势
  • 当你必须遵循以前建筑师的规则时就是这样...... :P 你应该看到我过来的一些设置项目的输出文件夹。对于许多未使用的 DLL 甚至是普通的 .Net 框架程序集来说,这真是太混乱了。所以我保持简约。

标签: dll gac installshield-le


【解决方案1】:

我在这里找到了答案:InstallShield LE (with Visual Studio 2012) completely fails to detect dependencies

使用文件下“主要输出”元素的属性。

我刚刚从该列表中取消选中 GAC 文件。

【讨论】:

    猜你喜欢
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2013-05-28
    相关资源
    最近更新 更多