问题标签 [msbuild-14.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
350 浏览

batch-file - MSBuild 打开一个新的 Visual Studio 实例

到目前为止,我们一直在使用以下 MSBuild 命令在构建服务器上使用 Visual Studio 2010 - 2013:

但是最近我们迁移到 VS 2015,不得不卸载所有其他 VS 版本(以节省空间),并使用以下构建位置(部分也是为了满足 C# 6.0 功能的编译):

这似乎适用于我们拥有的大多数 VS 解决方案,但是对于一个特定的 VS 解决方案,当我们执行此行时:

它会在构建服务器上打开同一项目的 VS 2015 实例,并且构建过程只是挂在命令提示符下。

谁能解释我们如何解决这个问题?

0 投票
1 回答
218 浏览

visual-studio-2015 - MSBuild 14 生成的可执行文件需要比引用更旧的依赖项

我有一个带有主要可执行文件和一些库项目的 VS 2015 C# 解决方案。这是一个代码分析工具,它也使用 Roslyn 和 MSBuild,因此主程序集需要来自 NuGet 的 Microsoft.CodeAnalysis 和 Microsoft.Build。我最近的任务是将以前的包从 1.x 更新到 2.x。它没有流畅运行,但我让它工作了,它现在需要Microsoft.CodeAnalysis 2.8.2Microsoft.Build 15.7.179. 直接从 Visual Studio 构建时,一切都按预期工作。

但是,当我从命令行使用 MSBuild 14 构建相同的解决方案(以及相同的 csproj 文件)时,生成的可执行文件是不同的,并且在运行时使用以下堆栈崩溃,当它尝试创建 MSBuild 工作区时:

查看 LoaderExceptions 属性,我发现以下内容:

当然找不到 System.Collections.Immutable 的 1.2.0.0,因为我们在 packages.config 中需要 1.3.1(这是为了引起更多混乱的是汇编版本 1.2.1.0),通过这个链:

该命令如下所示:msbuild All.sln /t:Build /p:Configuration=Debug /p:Platform=x64 /verbosity:diagnostic

在有问题的项目引用下的 MSBuild 输出中:

我真的不知道为什么它在运行时需要旧版本的库,因为1.2.0.0即使在详细的构建日志中也不会出现,仅1.2.1.0来自 package 1.3.1

澄清一下:我正在使用 VS2015/MSBuild14 构建我自己的项目,因为它只是 C# 6.0,但希望它能够分析 C# 7.0,这就是为什么我需要 Roslyn 2 和 MSBuild 15 作为一个包。

0 投票
0 回答
118 浏览

.net - MSBuild 抛出找不到指定的 SDK 'Microsoft.Build.NoTargets'

我正在使用 .net 4.7.2 运行时和 MSBuild 14。

我已将这两个目标导入到项目文件中

然后在另一个项目中消费这个sdk(这个项目是从上面的项目文件中引用的)

问题:我不明白从哪里调用 Sdk。我们可以控制它应该在哪里寻找 Sdk 的行为吗?