【问题标题】:Null-conditional Operators fail to compile in MSBUILD空条件运算符无法在 MSBUILD 中编译
【发布时间】:2016-09-21 20:08:31
【问题描述】:

我们有VS 2015 update 2,发现以下语法在VS内编译正常,但使用MSBUILD编译时失败:

如此处所述:https://msdn.microsoft.com/en-us/library/dn986595.aspx

此语法失败:

int? length = customers?.Length;

出现此问题的系统安装了 VS 2015 更新 2,并安装了 .NET 4.6.1。 我们只在从 MSBUILD 构建时遇到问题(这是构建系统使用的......)。这是显示我们如何运行 msbuild 的控制台输出:

Executing external process: C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
Parameters: C:\develop\<our app>\msbuild_project.xml /p:DefineConstants="Compiled_for_Windows_Service_Case_12345" /m
Output from C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
Microsoft (R) Build Engine version 4.6.1038.0
[Microsoft .NET Framework, version 4.0.30319.42000]
Copyright (C) Microsoft Corporation. All rights reserved.

【问题讨论】:

标签: c# msbuild


【解决方案1】:

您需要使用更高版本的 MSBuild.exe。示例见:

How to build .NET 4.6 Framework app without Visual Studio installed?

C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe MySolution.sln

【讨论】:

  • 啊,看看我的 c: 盘上有多少个 msbuild.exe。 (从没想过。)msbuild 仅适用于 32 位的任何原因?
  • 嗯,不确定。我想虽然 32 位 msbuild 仍然可以针对 64 位应用程序。
猜你喜欢
  • 1970-01-01
  • 2010-10-03
  • 2017-08-25
  • 2020-05-15
  • 2020-02-25
  • 2017-06-24
  • 2021-12-05
  • 1970-01-01
相关资源
最近更新 更多