我在使用命令行构建项目时遇到问题,涉及 MSBuild (版本4)。当声明lambda表达式如下:
Private Sub Foo(ByVal s As String)
Dim WL = Sub(str As String)
If Not String.IsNullOrEmpty(str) Then
Console.WriteLine(str)
End If
End Sub
WL(s)
End Sub
上述代码的第二行出现了错误:
错误 BC30201:需要表达式。
在Visual Studio 2010中,它可以正常编译。
MSBuild BAT文件:
SET MSBUILD="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
SET LogDll="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Build.Engine.Dll"
SET VSBuildSolName="d:\Projects\Source\Test.sln"
SET VSBuildConfigNameD="Debug"
SET VSBuildConfigNameR="Release"
SET VSBuildErrFileNameD="d:\Projects\build\Test_errD.txt"
SET VSBuildErrFileNameR="d:\Projects\build\Test_errR.txt"
CALL %MSBUILD% %VSBuildSolName% /p:Configuration=%VSBuildConfigNameD% /logger:FileLogger,%LogDll%;LogFile=%VSBuildErrFileNameD% /verbosity:normal /P:NOWARN= /tv:3.5
Option strict: Off Option infer: On
我刚刚检查了全新的测试解决方案,没有错误。 - KorVet