在一个VS安装程序项目中,我该如何将一个项目的依赖项从MSI中排除?

17
我正在使用C#编程。 我有一个小的VS解决方案,其中包含4个项目:
  1. 一个DLL
  2. 一个引用DLL的EXE
  3. 一个合并项目,只是在前两个步骤的程序集上执行ILMerge
  4. 一个安装项目,它将Merge项目的.EXE输出打包。(我已将“项目的主要输出”添加到设置中,在此处指定了合并项目)
问题是,安装项目自动将项目#1和#2检测为项目#3的依赖项。当我将第3个项目的主要输出包含在MSI(安装程序项目)中时,依赖关系也会自动拖入。我不想要这个。
我该如何停止它?
我尝试指定“排除过滤器”,但无法使其正常工作。无论我尝试什么,依赖性总是被拖入。

alt text

我尝试手动修改Setup.vdproj,以删除自动检测到的依赖项目,但是当我重新加载.vdproj在VS中时,自动检测到的依赖项又回来了。有什么帮助吗?
2个回答

14

我讨厌这种情况。在我提问后的三分钟内,我想出了答案。

您可以右键单击检测到的依赖项,在属性窗口中指定“Exclude=True”即可。

alt text


4
完全移除是可能的吗? - JohnB

1

太棒了,Cheeso的方法对我有用。只需注意,如果您的项目或子项目获得新的项目引用,则该依赖项将出现在安装程序中。您必须意识到这一点并像您所做的那样排除该依赖项。


2
当切换构建配置时,有些依赖项会保持自我启用:( - surfen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接