Visual studio Visual Studio生成步骤和MSBuild生成步骤之间的差异
我正在创建一些构建定义,我看到的VisualStudio构建步骤和MSBuild构建步骤之间的唯一区别是VS构建步骤将VisualStudio版本添加到构建中Visual studio Visual Studio生成步骤和MSBuild生成步骤之间的差异,visual-studio,tfs,msbuild,tfs-2015,Visual Studio,Tfs,Msbuild,Tfs 2015,我正在创建一些构建定义,我看到的VisualStudio构建步骤和MSBuild构建步骤之间的唯一区别是VS构建步骤将VisualStudio版本添加到构建中 有人能解释更多的差异吗?很少。这两项任务都是开源的,它们似乎都做了或多或少相同的事情 它们几乎和丹尼尔提到的一样。主要区别正如您所发现的:VisualStudio构建步骤将VisualStudio版本添加到构建中 我应该使用Visual Studio生成步骤还是MSBuild步骤? 如果您正在构建解决方案,在大多数情况下,您应该使用 V
有人能解释更多的差异吗?很少。这两项任务都是开源的,它们似乎都做了或多或少相同的事情
它们几乎和丹尼尔提到的一样。主要区别正如您所发现的:VisualStudio构建步骤将VisualStudio版本添加到构建中 我应该使用Visual Studio生成步骤还是MSBuild步骤? 如果您正在构建解决方案,在大多数情况下,您应该使用 VisualStudio构建步骤。此步骤将自动执行:
- 为您设置/p:VisualStudioVersion属性。这将强制MSBuild使用一组特定的目标,以增加 成功构建的可能性
- 指定MSBuild版本参数
我看到这个问题是关于两个构建任务的 但是,当人们搜索MSBuild和VS Build(而不是Buildpipeline任务)之间的差异时,Google会突出地显示这个问题,因此我想添加以下来自Microsoft的引用: Visual Studio版本与MSBuild.exe版本的比较 在项目构建时,它们之间存在一些显著的差异 Visual Studio与直接调用MSBuild(通过 MSBuild可执行文件,或使用MSBuild对象模型启动时 身材。Visual Studio管理Visual Studio的项目生成顺序 工作室建设;它只在单个项目级别调用MSBuild, 当它这样做时,一些布尔属性 (
buildingSideVisualStudio
,BuildProjectReferences
)设置为
显著影响MSBuild的功能。在每个项目内部,执行
与通过MSBuild调用时发生的相同,但不同之处在于
与引用的项目一起出现。在MSBuild中,当引用项目时
如果是必需的,则实际发生构建;也就是说,它运行任务和
工具,并生成输出。当VisualStudio生成找到
引用的项目,MSBuild仅从
参考项目;它让VisualStudio可以控制
其他项目。VisualStudio确定生成顺序和
单独(根据需要)调用MSBuild,所有调用都完全在Visual Studio下进行
工作室的控制权
使用解决方案调用MSBuild时会出现另一个差异
文件,MSBuild解析解决方案文件,创建标准XML输入
文件,对其求值,并将其作为项目执行。解决方案构建
在任何项目之前执行。从Visual Studio生成时,无
这种情况经常发生;MSBuild从未看到解决方案文件。作为一个
结果,解决方案构建定制(使用
before.SolutionName.sln.targets和before.SolutionName.sln.targets)
仅适用于MSBuild.exe或对象模型驱动,不适用于Visual Studio
建立
来源:当Microsoft拒绝更新一个不到2年的程序以适应新的visual studio版本时,您还必须使用msbuild任务。我们必须切换到MS build,因为visual studio忽略了SSDT项目之间的数据库引用。是否要求为这两个项目安装visual studio?另外MSBuild忽略解决方案配置,例如,它将在解决方案中生成所有项目,而不管是否在VS Configuration Manager UI中选中“生成”。