构建没有依赖关系的MSBuild目标

问题描述 投票:24回答:5

有什么方法可以告诉MSBuild 4.0建立目标,但是忽略任何依赖关系吗?我只想自己建立那个目标,没有别的。

msbuild msbuild-4.0
5个回答
49
投票

我想重申@EMP的解决方案(由于我的声誉微不足道,所以我无法将他投票。)>

避免MSBuild重建项目文件中列出的所有依赖项的默认行为的正确方法是将BuildProjectReferences属性设置为false。

他在回答中从MSBuild脚本中调用MSBuild;这是命令行示例:

MSBuild myproj.csproj /p:Configuration=Debug /p:BuildProjectReferences=false /t:Build

14
投票

事实证明内置的Build目标会检查名为BuildProjectReferences的属性以告知是否建立引用。我确实需要在项目本身上运行Build(否则它将无法正常运行),而不是依赖于其依赖项。我最终打电话给:


3
投票

可能会覆盖内置目标,添加您自己的条件,并使目标复制原始目标,但这可能会涉及很多。如果您可以跟踪单个相关的内置目标,则可以维护该目标。有时这些“核心”目标仅由DependsOnTargets列表组成,有时甚至在属性中定义了这些目标,因此对其进行覆盖并添加缺少它们的条件是很简单的。有时,尽管您需要进行大量剪切和粘贴才能正确处理。


1
投票

取决于您要构建的目标。如果目标是内置的并且具有依赖性(例如“ Build”),则无法删除依赖性。如果这是您自己的目标,则可以轻松实现它:


1
投票

通常使用属性指定目标的依赖关系,例如:


0
投票

如果您要构建MsBuild项目(而不是目标),而没有任何依赖项目,请使用以下命令:/p:BuildProjectReferences=false

© www.soinside.com 2019 - 2024. All rights reserved.