MSBuild中有条件导入的解决方法吗?
我发现了证据here和here详细说明了MSBuild IDE界面中的错误。特别是,Import
语句在构建时不会重新加载:
这是一个已知的限制。当项目加载时,VS只会处理一次标签。因此,在项目首次加载时(根据您的属性当时具有的任何值),无论标记是否处于活动状态... ...这是您在IDE中该项目的生命周期中获得的标记
例如,我可能希望根据bar
的值导入baz
或foo
项目:
<Import Project="bar.targets" Condition="'$(foo)' == 'bar'" />
<Import Project="baz.targets" Condition="'$(foo)' == 'baz'" />
我是否可以使用解决方法或不同的方法来实现所需的功能?
答案 0 :(得分:1)
我认为你不能使用条件导入机制来解决这个问题。你真的想要完成什么?
Sayed Ibrahim Hashimi
我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build
答案 1 :(得分:0)
取决于目标文件中的内容,但如果您只是根据$(foo)属性设置属性,那么您可以使用prebuild事件或prebuild target来执行相同的工作。