MSBuild条件导入

时间:2009-07-16 20:24:02

标签: .net asp.net msbuild import

MSBuild中有条件导入的解决方法吗?

我发现了证据herehere详细说明了MSBuild IDE界面中的错误。特别是,Import语句在构建时不会重新加载:

  

这是一个已知的限制。当项目加载时,VS只会处理一次标签。因此,在项目首次加载时(根据您的属性当时具有的任何值),无论标记是否处于活动状态... ...这是您在IDE中该项目的生命周期中获得的标记

例如,我可能希望根据bar的值导入bazfoo项目:

<Import Project="bar.targets" Condition="'$(foo)' == 'bar'" />
<Import Project="baz.targets" Condition="'$(foo)' == 'baz'" />

我是否可以使用解决方法或不同的方法来实现所需的功能?

2 个答案:

答案 0 :(得分:1)

我认为你不能使用条件导入机制来解决这个问题。你真的想要完成什么?

Sayed Ibrahim Hashimi

我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

答案 1 :(得分:0)

取决于目标文件中的内容,但如果您只是根据$(foo)属性设置属性,那么您可以使用prebuild事件或prebuild target来执行相同的工作。