我有#.net winforms解决方案,我想创建两个不同的版本:一个支持IE6,另一个支持IE7.我的一个项目中的一些文件对于IE6构建与IE7构建是不同的,所以当我为IE7构建IE6时构建IE6和IE7文件时我想要包含IE6文件.在这种情况下构建解决方案的最佳方法是什么?
由于其他约束,我不想创建包含共享项的单独程序集; 我希望项目编译为单个程序集'foo.dll',无论我正在构建哪个构建.
我以为我可以创建两个单独的项目,编译为'foo.dll',然后创建两个发布配置,并仅在相关配置中包含相关项目.但是我需要在两个项目中包含IE6和IE7相同的文件,我无法看到如何在两个项目中使用文件的单个副本(当我添加现有项目时,它会创建一个副本项目目录).我正在使用SVN进行源代码控制,所以也许可以使用它来在文件夹之间进行"共享",但怀疑这是最好的方式..
注意:由于IE中的API差异,需要不同的构建,其细节与问题无关 - 只要相信我需要两个构建.
在MSBuild中,您可以为项目组指定条件.然后,您可以将这些条件绑定到目标设备.
例:
true false
请注意,所有文件都将出现在IDE中,但在编译时,所有文件都应正确对齐.
然后,您需要做的就是在配置管理中创建您的平台(IE6和IE7).
您也可以直接使用platform属性,而不是创建中间属性.