tfs构建服务器 - 字符串插值$字符无效

Baa*_*ali 9 tfsbuild string-interpolation

$在我的代码中使用字符串插值.它编译得很好但是当我签入我的代码时,构建服务器会抛出错误BC30037: Character is not valid.以下是我如何使用字符串插值的示例:

dim r = New RadNode($"{acq.FormNo} -  ${CInt(acq.TotalAmount)}", icon:=RadTreeIcons.RedTriangle)
Run Code Online (Sandbox Code Playgroud)

构建服务器安装了Visual Studio 2015 Entreprise版本.

如果我从命令提示符运行:

C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild /tv:14.0 "Proj.sln",代码编译文件.但是,如果我将上述参数更改为

C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild /tv:12.0 "Proj.sln", 我犯了同样的错误

我也做了这些改变:

我已将MSBuildArguments属性设置为/p:VisualStudioVersion=14.0并且还更改了TFSBuild.proj文件并将此行更改为<Project DefaultTargets="DesktopBuild" xmlns="schemas.microsoft.com/developer/msbuild/2003"; ToolsVersion="14.0">"但同样的问题正在发生.

更改了(web vbproj)文件,并将ToolSet版本从12.0更改为14.0.其他vb项目部分解决方案仍然以12.0为目标,但作为web vb项目的一部分在dll中编译.

Baa*_*ali 6

这里的答案解决了我的问题:

BuildActivity忽略ToolsVersion

对于我们这些不是每天生活在构建模板中的人来说,这里的步骤是让它为我工作的:

首先找到与您的构建相关联的模板(如果您已经知道在哪里找到它,请跳过几个步骤).

只需右键单击构建定义并选择Edit build definition选择Process选项卡,您将看到模板的名称(如果您没有自定义它,很可能是DefaultTemplate).在最右侧单击显示详细信息以查看模板的路径.

在此输入图像描述

转到Team explorer下的Home选项卡,然后单击Source control explorer 在此输入图像描述

找到模板文件,然后双击进行编辑.它应该出现在这样的图形视图中.滚动,直到找到Run MSBuild for Project 在此输入图像描述

单击此项将立即显示属性 在此输入图像描述

单击右侧的小图标 - 不要尝试键入它,因为它可能会爆炸并导致Visual Studio崩溃.输入IN QUOTES以下"C:\ Program Files(x86)\ MSBuild\14.0\bin" 在此输入图像描述

现在是最重要的部分

对我来说,Run MSBuild for Project在两个地方.

所以我只是在两个地方重复了上述步骤,然后在我检查.xaml文件后,我的构建最终工作正常.

您可能需要从TFS工具中回收代理/控制器.

在此输入图像描述