我们使用Visual Studio 2008遇到以下问题,即使在将重复检测到的依赖项的排除设置设置为true后保存设置项目,重新加载项目后,排除设置也会更改为false。
因此,您必须再次排除检测到的依赖项以获得所需的输出。我们有一个相互依存的120多个项目的巨大解决方案,它们具有大量的dll依赖关系,所以重新改变这些值是很痛苦的。
我简化了下面的情节(轻描淡写)来说明:
项目:
- PROJECTA - 引用DLL1,DLL2,DLL3
- PROJECTB - 引用DLL3,DLL4,PROJECTA
- PROJECTC - 引用DLL2,DLL3,DLL4
-
PROJECT1(设置项目)
- PROJECTA的主要输出(手动添加)
- PROJECTB的主要输出(手动添加)
- (检测到VS自动添加的依赖项)
- PROJECTA(设置Exclude = True,重新加载后值保持不变)
- DLL1(设置Exclude = True,重新加载后值保持不变)
- DLL2(设置Exclude = True,重新加载后值更改回False)
- DLL2(设置Exclude = True,重新加载后值更改回False)
- DLL3(无变化,想要包含)
- DLL3(设置Exclude = True,重新加载后值更改回False)
- DLL3(设置Exclude = True,重新加载后值更改回False)
- DLL4(设置Exclude = True,重新加载后值更改回False)
- DLL4(设置Exclude = True,重新加载后值更改回False)
OUTPUT(对于PROJECT1.msi):
-
期望的输出:
- PROJECTA.dll
- PROJECTB.dll
- DLL3
-
当VS将排除设置更改回False时的输出:
- PROJECTA.dll
- PROJECTB.dll
- DLL2
- DLL3
- DLL4
这会在运行时导致问题(加上膨胀的安装程序)。
我浏览了网页,但尚未找到适用于我们设置的可行解决方案。过去已经提出了一些问题,所以我想知道是否已有补丁,或者有人有一个新的解决方法可以帮助我们。
除了使用WIX并将所有依赖项的Copy Local设置值设置为false之外,是否有人有解决方案使Visual Studio保留Exclude设置值?