相关疑难解决方法(0)

CS1617:/ langversion的选项'6'无效; 必须是ISO-1,ISO-2,3,4,5或默认值

在Windows 2008 Server计算机上运行全新的ASP.NET MVC应用程序(直接从VS 2015社区)时,保持获得该错误.

c# asp.net iis asp.net-mvc

79
推荐指数
9
解决办法
9万
查看次数

BuildActivity忽略ToolsVersion

我在BuildAgent上运行持续集成构建,但我无法正常工作.我最近将代码库更改为C#6.0,并将项目更改为ToolsVersion 14.

我在Build Server(TFS 2012)上安装了Visual Studio 2015.如果我现在检查C#6.0代码,则构建在第一个项目上失败("$"是意外的或"某事")

BuildTemplate是"DefaultTemplate.11.1"如果我检查日志文件,构建调用错误的csc.exe(C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Csc.exe)

如果我使用没有任何开关的项目启动MSBuild/14.0/Bin/MSBuild可执行文件,则构建成功.为什么TFS BuildAgent不使用ToolsVersion,如何让TFS 2012构建我的Visual Studio 2015解决方案

如果我添加MSBuildArgument /tv:14.0它仍然失败.因为它称为MSBuild的第12版,它是Visual Studio 2015附带的.NET 4.6 RC Framework的一部分.

如果我尝试运行我的UnitTest,更改MSBuild Activity的ToolsPath确实可以使Build工作但是吐出子弹.我得到了一个Missing dll"Microsoft.VisualStudio.TestPlatform.Utilities.dll"异常.(VS2012也在Build Server上安装).

更新:我现在在单元测试中遇到了不同的错误:

TF900548: An error occurred publishing the Visual Studio test results.
Details: 'Method not found:
'System.Collections.Generic.IEnumerable<System.String>
Microsoft.VisualStudio.TestPlatform.Utilities.InferSettingsHelper.MergeRunSettingsAndFindCompatibleSources(Microsoft.VisualStudio.TestPlatform.ObjectModel.Architecture
ByRef,
 Microsoft.VisualStudio.TestPlatform.ObjectModel.FrameworkVersion
 ByRef, System.String, System.String,
 System.Collections.Generic.IDictionary`2<System.String,System.Collections.Generic.KeyValuePair`2<Microsoft.VisualStudio.TestPlatform.ObjectModel.Architecture,Microsoft.VisualStudio.TestPlatform.ObjectModel.FrameworkVersion>>,
 System.Xml.XPath.IXPathNavigable, System.String ByRef)'.'
Run Code Online (Sandbox Code Playgroud)

msbuild tfs tfs2012

33
推荐指数
3
解决办法
1万
查看次数

String Interpolation不会在TeamCity上构建

对于我支持的旧项目,我一直在进行一些现代化改造.这包括各种各样的事情:将.NET Framework提升到4.6,以及其他升级.我们有一些余地可以做的事情是进行语法升级,只要我们不改变业务逻辑.

我们最近还安装了Visual Studio 2015,以及最新最好的ReSharper,它揭示了"String Interpolation"现在是我们可以在代码中完成的事情.对于那些不知道的人,字符串插值是通过string.Format调用的语法糖,如下所示:

// Normal, pre-C#6 formatting:
var foo = string.Format("Some string {0}", bar);

// C#6 String Interpolation
var foo = $"Some string {bar}";
Run Code Online (Sandbox Code Playgroud)

这非常有用,因为它使消息更容易阅读,并且通常占用更少的字符.

......然而,TeamCity似乎不同意.当我在提交中推送代码时,我收到以下错误:

Directory\SomeFile.cs: error CS1056: Unexpected character '$' [C:\ProjectDirectory\Project.Core\Project.Core.csproj]
Run Code Online (Sandbox Code Playgroud)

从表面上看,似乎某种类型的前C#6构建器正在受到攻击,因为这是C#6的新功能.

这就是我所观察到的,这就是为什么我认为这是正在发生的事情:

  1. 构建配置指向C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 这让我暂停,因为可能是我们的构建代理上安装了.NET 4.6.

  2. 但是,尝试从Microsoft安装程序直接安装.NET 4.6时,它会失败,因为.NET 4.1已经安装在bulid代理上.

  3. 我们的构建配置的编译步骤也让我停下来.注意构建引擎和框架版本的前两行分别是[exec] Microsoft (R) Build Engine version 4.6.1055.0 [exec] [Microsoft .NET Framework, version 4.0.30319.42000] 构建引擎显然是v4.6,但.NET框架是4.0!我读得对吗?

  4. 最后,构建日志的最后一行:[NAnt output] External Program Failed: C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe (return code was 1)不是 4.6 ......是吗?

问题: …

.net c# msbuild teamcity

10
推荐指数
1
解决办法
5936
查看次数

使用Visual Studio构建项目很好但是从命令行失败

我有一个在Visual Studio 2015中运行时构建良好的解决方案,但是当我从命令行运行时,我遇到了错误

错误CS1056:此行上出现意外字符'$'

var CutOffTextFragment = deadLineTime.Deadline.Minute == 0 ? $"{deadLineTime.Deadline:htt}" : $"{deadLineTime.Deadline:h:mmtt}"
Run Code Online (Sandbox Code Playgroud)

deadLineTime.Deadline是一个DateTime对象,代码将返回XAM/PM或X:XXAM/PM

我认为这是因为构建脚本没有使用C#6.目前这个脚本不能改为使用c#6

如果是这种情况,任何人都可以帮我折旧代码,以便它适用于C#5

c# msbuild

1
推荐指数
1
解决办法
9080
查看次数

c#error CS1056:Jenkins或MSbuild的意外字符'$'

我需要使用Jenkins进行Continues集成,在我的代码中我编写了类似的代码

throw new ArgumentNullException($"The {nameof(Id)} cannot be null");
Run Code Online (Sandbox Code Playgroud)

如果我构建应用程序它正在构建成功,但如果我使用MsBuild(或)Jenkins构建相同的应用程序,

我得到的错误就像

Web\WebSharedHelper.cs "C:\WINDOWS\TEMP\.NETFramework,Version=v4.5.2.AssemblyAttributes.cs"
Security\ApiUserToken.cs(46,32): error CS1056: Unexpected character '$' [C:\Program Files (x86)\Jenkins\workspace\OssiaCICD\common\trunk\Cota.Common.Core\Cota.Common.Core.csproj]
Security\ApiUserToken.cs(58,32): error CS1056: Unexpected character '$' [C:\Program Files (x86)\Jenkins\workspace\OssiaCICD\common\trunk\Cota.Common.Core\Cota.Common.Core.csproj]
Security\ApiUserToken.cs(62,26): error CS1056: Unexpected character '$' [C:\Program Files (x86)\Jenkins\workspace\OssiaCICD\common\trunk\Cota.Common.Core\Cota.Common.Core.csproj]
Done Building Project "C:\Program Files (x86)\Jenkins\workspace\OssiaCICD\common\trunk\Cota.Common.Core\Cota.Common.Core.csproj" (default targets) -- FAILED.
Run Code Online (Sandbox Code Playgroud)

我正在使用v4.0.30319 FrameWork for MSBuild.

.net c# asp.net jenkins

0
推荐指数
2
解决办法
9476
查看次数

标签 统计

c# ×4

msbuild ×3

.net ×2

asp.net ×2

asp.net-mvc ×1

iis ×1

jenkins ×1

teamcity ×1

tfs ×1

tfs2012 ×1