Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS赢得';编译字符串插值语法_Tfs_Visual Studio 2015_Roslyn - Fatal编程技术网

TFS赢得';编译字符串插值语法

TFS赢得';编译字符串插值语法,tfs,visual-studio-2015,roslyn,Tfs,Visual Studio 2015,Roslyn,上周发布时,我更新了Visual Studio 2015。Resharper建议我使用string.Format更新以下字符串: string filePath = HttpContext.Server.MapPath(string.Format("~/App_Data/{0}.xlsx", Guid.NewGuid())); 要使用字符串插值,请执行以下操作: string filePath = HttpContext.Server.MapPath($"~/App_Data/{Guid.Ne

上周发布时,我更新了Visual Studio 2015。Resharper建议我使用
string.Format
更新以下字符串:

string filePath = HttpContext.Server.MapPath(string.Format("~/App_Data/{0}.xlsx", Guid.NewGuid()));
要使用字符串插值,请执行以下操作:

string filePath = HttpContext.Server.MapPath($"~/App_Data/{Guid.NewGuid()}.xlsx");
我做到了,一切都很好

但是,我破坏了TFS的构建:

控制器\MyController.cs(224): 意外字符“$”

因此,C#6中的新功能似乎无法由我们的旧版、未更新的TFS编译

该项目仍然以使用框架4.5为目标,但是,我没有以4.6为目标。我(错误地)认为,仍然以旧框架为目标意味着其他团队成员可以使用VS2013和我们的TFS构建服务器构建它

看来我们的TFS需要更新。。。什么

我需要在TFS服务器上安装什么才能让它编译这个新语法?.NET Framework的最新版本或其他版本?

请在生成服务器上安装和安装。
然后(
/tv:14.0
)在MSBuild参数中。

不幸的是,如果不在TFS构建服务器上安装VS2015,似乎没有一种简单的方法可以让旧版本的TFS与C#6.0一起工作。如果你能做到的话,我建议你这样做。如果,无论出于何种原因,您不能,那么以下几点对我有效:

我按照另一个答案的说明去做,但单凭这一点是行不通的。我还必须编辑默认的TFS生成过程模板(在我的示例中,该模板位于$//BuildProcessTemplates中),并将“为项目运行MSBuild”节点的工具路径属性更改为MSBuild 14.0的位置(通常为C:\Program Files(x86)\MSBuild\14.0\Bin)

然后,您将需要更新生成定义以使用新的生成模板(如果您复制/编辑了新的生成模板,而不是编辑了原始的生成模板)

此时,您应该能够使用TFS构建C#6项目,但是如果您也尝试进行web部署/打包,那么还有几个步骤


在生成服务器上的C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0上,应该有一个Typescript文件夹,而没有其他文件夹。在使用VS2015的本地计算机上,转到相同的路径。应该有一个Web和WebApplications文件夹。将这些复制到服务器的文件夹中。您现在也应该能够打包/部署web项目。

请检查TFS生成过程模板中是否多次存在“为项目运行MSBuild”。就我而言,它存在过两次,我花了一段时间才弄明白为什么刀具路径的更改没有达到预期效果。

根据文档,没有必要使用.NET 4.6,4.5应该足够好了。不过,我还没有尝试。可能您只是使用了错误的MSBuild版本。TFS 2013生成控制器在该框中找不到MSBuild 15.0,若要使用MSBuild 15.0,您需要升级TFS服务器。我已在生成服务器(2013)上安装了上述版本,但生成仍然失败。您是否升级了您的TFS@bgs264?不,无法-大型组织,需要大量的文书工作才能做到这一点。我刚刚把它转回去使用
string.Format
,它就生成了:-/@KMoraz:我尝试将/tv:14.0放入msbuild参数中,但仍然收到相同的错误消息。我的生成服务器上安装了Visual Studio 2015。