上下文:我有一个.Net标准2.0项目,比如ProjectA,其中我使用<Import Project="xxxx.targets" />
语句从目标文件导入项目。此解决方案有许多项目(ProjectA、ProjectB、ProjectC和ProjectD(。项目A在项目B和项目C中使用项目参考进行参考。
问题是:如果构建/重建请求源于特定的项目,比如ProjectC,我希望忽略此导入语句并正常构建ProjectA。如果构建请求源自项目B或项目A,我希望包含此导入。我知道<Import Project="xxxx.targets" />
可以具有"Condition"
属性。但是我该如何实现这个想法呢?有什么建议吗?
如果引用的项目尚未生成,ProjectReference
将导致生成该项目。不支持基于需要引用项目的项目更改该项目的内部版本。如果可以的话,这会产生各种各样的问题。当从解决方案生成时,ProjectB或ProjectC可能会触发生成ProjectA,并且由于ProjectA将生成一次,因此其中一个项目的生成将"不正确"。
对于给定的配置/平台,一个项目应该始终构建相同的配置。
但是您可以创建新的单独配置。
例如:
- 在默认的"发布"one_answers"调试"配置中,禁用ProjectC
- 创建新的"ProjectC Release"one_answers"ProjectC Debug"配置
- 在"ProjectC Release | Debug"配置中,禁用ProjectB
- 在ProjectA(ProjectC和ProjectB都引用的项目(中,根据
Configuration
属性的值条件化Import
(然而,我怀疑你问的问题并不是你想要解决的问题。(