2016-09-21 44 views
0

編譯我們VS 2015年更新2,發現以下語法編譯中VS罰款,但沒有使用的MSBuild編譯時:空,有條件者未在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. 
+0

[我正在一個錯誤的可能重複使用時空條件運算符:語法錯誤,':'預計](http://stackoverflow.com/questions/38059149/i-am-getting-an-error-when-using-the-null-conditional-operator-syntax - 錯誤) –

+0

「_fails to compile_」什麼是錯誤? –

+1

@FirstStep我認爲這不是一個騙局。它是相似的,但是另一條線索提到應該是什麼解決方案,而沒有說明實際要做什麼。 (我不會奇蹟般地知道我係統上的哪個msbuild是roslyn編譯器。)道歉,我應該有編譯錯誤,但目前無法訪問構建日誌。 – Jonesome

回答

1

您需要使用更高版本的MSBuild.exe。舉一個例子,請參閱:

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

C:\ Program Files文件(x86)的\的MSBuild \ 14.0 \斌\ MsBuild.exe MySolution.sln

+0

Ahhhh,看看我的c:盤上有多少個msbuild.exe。 (從來沒有想過看。)任何理由msbuild只能在32位? – Jonesome

+0

嗯,不知道。我會想象,雖然32位msbuild仍然可以針對64位應用程序。 – Jacob