我有一个VS 2012 web项目/ sln,我正在尝试在TeamCity中构建.它使用安装在TeamCity上的.NET 4.5.
TeamCity服务器仅安装了VS 2010.
构建运行时出现此错误:
C:\BuildAgent\work\d5bc4e1b8005d077\CUSAAdmin.Web\CUSAAdmin.Web.csproj(799, 3):
error MSB4019:
The imported project
"C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found.
Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. Project CUSAAdmin.Web\CUSAAdmin.Web.csproj failed.
Project CUSAAdmin.sln failed.
Run Code Online (Sandbox Code Playgroud)
它正在尝试使用Visual Studio 2012(v11.0)进行构建.
虽然我在build.xml中将VisualStudioVersion设置为10?
<Target Name="BuildPackage">
<MSBuild Projects="CUSAAdmin.sln" ContinueOnError="false"
Targets="Rebuild"
Properties="Configuration=$(Configuration); VisualStudioVersion=10.0" />
Run Code Online (Sandbox Code Playgroud)
在项目内部,它也默认为VS2010
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath
Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
Run Code Online (Sandbox Code Playgroud) msbuild teamcity visual-studio-2010 visual-studio visual-studio-2012
我们使用TFS 2013作为构建服务器.我已经开始了一个C#6.0项目,我正在努力建立它.我正在使用新的null条件运算符和我的构建chokes.我已经尝试在TFS服务器上安装了几个东西,包括目标包和VS 2015.我已经尝试将/tv:14.0提供给MSBuild参数.
Configuration\EntityEntityConfig.cs(270):无效的表达式术语'.'
Configuration\EntityEntityConfig.cs(283):无效的表达式术语'.'
Configuration\EntityEntityConfig.cs(283):语法错误,':'预期
......等
在这一点上,我不知道还有什么可以尝试.任何建议将不胜感激.
这是场景:
我们使用Visual Studio Online和我们公司网络中的内部部署构建服务器与TFS 2013在门控签入和发布后构建我们的解决方案.
现在我们从Visual Studio 2013升级到Visual Studio 2015 Enterprise并升级到新的.NET版本.我们非常渴望利用C#6的新功能,但在第一次登记后我们经历了构建失败.
(抱歉没有图片,因为我缺乏声誉)
异常消息:MSBuild错误1已结束此构建.您可以在上面的消息中找到有关此错误原因的更多具体信息.(类型BuildProcessTerminateException)异常堆栈跟踪:位于System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem的System.Activities.CodeActivity.InternalExecute(ActivityInstance实例,ActivityExecutor执行程序,BookmarkManager bookmarkManager)的System.Activities.Statements.Throw.Execute(CodeActivityContext context)处. .ExecuteBody(ActivityExecutor executor,BookmarkManager bookmarkManager,Location resultLocation)ApplicationManager.cs(33,0)意外的字符'$'ApplicationManager.cs(33,0); 预期
似乎构建代理不理解新语法并仍然使用旧版本编译.
我为解决这个问题所做的是:
在内部部署的构建服务器上安装Visual Studio 2015(仍安装旧版Visual Studio 2013)
重新启动构建控制器
按照此处的步骤操作:https://stackoverflow.com/a/28327275/4919063
这基本上是安装Visual Studio 2015和新的Microsoft Build Tools
我用其中一个模板创建了一个新的构建定义
通过Visual Studio Online的Web访问创建新的代理程序池.下载
ConfigureAgent.ps1并在构建服务器上执行它以创建新的
剂.但我无法弄清楚如何利用新创建的代理.
我的问题是:如何更新构建代理程序以便在没有失败的情况下运行
尊重新的.NET版本?
我的公司有TFS 2013.
我有一个使用C#6.0功能的项目.
我的团队无法直接访问构建服务器.VS2015尚未安装在那里,但管理服务器的人正在寻找安装2015构建工具.
与此同时,我已经安装了Microsoft.Net.Compilers NuGet包,如C#6.0 TFS Builds的答案和其他几个问题所述.
解决方案中的一些项目已经安装了它:( Asp.Net MVC 5项目和Web API项目.)
构建解决方案时,TFS将包中的Rosyln编译器用于某些项目,将默认编译器用于其他项目.
这两个Web项目从不使用Roslyn编译器.还有3个其他库,一个控制台应用程序,以及包含单元/集成测试的手工项目.除了一个项目(其中一个库)的行为不同,取决于它所在的构建,所有项目在他们使用的编译器中看起来是一致的
我在这里错过了什么?为什么TFS可以将包编译器用于某些项目而不用于其他项目?
构建错误的采样:使用名称:
SomeController.cs (53): The name 'nameof' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)
静态使用:
RedactedTests.cs (5): Identifier expected; 'static' is a keyword
RedactedTests.cs (5): Expected class, delegate, enum, interface, or struct
Run Code Online (Sandbox Code Playgroud)
null合并运算符:
InterestingClassName.cs (40): Invalid expression term '.'
InterestingClassName.cs (40): Syntax error, ':' expected
InterestingClassName.cs (40): Invalid expression term '.'
InterestingClassName.cs (40): Syntax error, ':' expected
Run Code Online (Sandbox Code Playgroud)
表达身体财产: …
我们使用TeamCity(9.0.1)作为构建服务器,但最近升级了我们的ASP.NET MVC解决方案以使用VS2015和C#6语法,现在我在构建服务器上收到以下错误消息:
无法启动构建运行器
更具体地说:
C:\ TeamCity\buildAgent\work\86ee61c6c333dc3d\MyApplication\MyApplication.csproj.metaproj:错误MSB4025:无法加载项目文件.找不到文件'C:\ TeamCity\buildAgent\work\86ee61c6c333dc3d\MyApplication\MyApplication.csproj.metaproj'.
我在几个不同的帖子中遵循了建议(尽管这些主要是TFS专注而不是TeamCity,并且不直接引用缺少的".metaproj"文件):
总而言之,我对Build Server进行了以下更改:
来自:
msbuild'..\MyApplication.sln'/ t:Build/p:Configuration = Release/p:RunCodeAnalysis = Always /p:VisualStudioVersion=12.0
致:
msbuild'..\MyApplication.sln'/ t:Build /tv:14.0/p:GenerateBuildInfoConfigFile = false/p:Configuration = Release/p:RunCodeAnalysis = Always/p:VisualStudioVersion = 14 .0
注意:
如果我登录构建服务器并尝试使用VisualStudio 2015编译解决方案,那么这很好.
在上面提到的一个帖子中,它讨论了从"TfvsTemplate.11.1.xaml"升级到"TfvsTemplate.12.xaml".但据我所知,我不会使用或参考这个.也许我在这里弄错了,在这种情况下,我们将非常感激地接受下一步该做什么的白痴指南.