gpt4 book ai didi

.net - MSBuild 在 VB.NET lambda 表达式上失败

转载 作者:行者123 更新时间:2023-12-01 08:49:11 25 4
gpt4 key购买 nike

我在使用 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

错误发生在上面第二行代码:

error BC30201: Expression expected.

在 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

最佳答案

作为对你问题的回答

1) why Visual Studio 2010 builds it without errors?

当然可以在 Visual Studio 的每个后续版本中编写在早期版本中无法运行的代码,尤其是当此类代码使用当前版本或 Visual Studio 或速成版的当前 IDE 的新功能时。

以一行PROPERTY为例,在2010年以前的VB.Net版本中你不能这样做,再举个例子,在2010年之前的版本中你不能省略行继续符,而在2010年中你可以代码的某些部分。

关于.net - MSBuild 在 VB.NET lambda 表达式上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6813273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com