使用 C#6 构建 TeamCity
TeamCity Build using C#6
我们使用 TeamCity (9.0.1) 作为我们的构建服务器,但最近升级了我们的 ASP.NET MVC 解决方案以使用 VS2015 和 C#6 语法,我现在在我们的构建服务器上收到以下错误消息:
Can not start build runner
更具体地说:
C:\TeamCity\buildAgent\workee61c6c333dc3d\MyApplication\MyApplication.csproj.metaproj : error MSB4025: The project file could not be loaded. Could not find file 'C:\TeamCity\buildAgent\workee61c6c333dc3d\MyApplication\MyApplication.csproj.metaproj'.
我遵循了几个不同帖子中的建议(尽管这些帖子主要关注 TFS 而不是 TeamCity,并且不直接引用丢失的“.metaproj”文件):
因此,总而言之,我对构建服务器进行了以下更改:
- 已安装 Visual Studio 2015 更新 2
- 更改了执行构建的 PowerShell 脚本
来自:
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 =总是 /p:VisualStudioVersion=14.0
注:
如果我登录构建服务器并尝试编译解决方案
使用 VisualStudio 2015 然后这工作正常。
在上面提到的其中一个帖子中,它讨论了从
"TfvsTemplate.11.1.xaml" 到 "TfvsTemplate.12.xaml"。但据我所知
不知道,我不使用或引用它。也许我误会了
在这里,在这种情况下,下一步该怎么做的白痴指南是
非常感谢。
我以前遇到过这个问题,我认为您可以通过登录到 TeamCity 目录并删除工作目录中的所有文件来解决它。或者在结帐之前对工作目录执行 "clean"。我建议只手动删除文件。同样对于 TeamCity 9.1.6,您不需要在服务器上安装完整的 Visual Studio,只需安装 Microsoft Build Tools 2015 (https://www.microsoft.com/en-us/download/details.aspx?id=48159),然后使用 "MSBuild" 运行器类型或"Visual Studio (sln)" 亚军类型。
终于....我们修复了它。
我必须在构建服务器上执行以下步骤:
- 已安装 VS2015 更新 2
- 编辑环境变量 "PATH" 以更改 C:\Program Files (x86)\MSBuild.0\Bin\ 中的一项设置;到 C:\Program Files (x86)\MSBuild.0\Bin\;
- 因为我们使用 TeamCity 触发 PowerShell 脚本,而该脚本又触发 MSBuild。我将 PowerShell 模块 PSAKE 从 4.2 更新到 4.6(但这可能不是必需的)
- 创建了一个新的环境变量 "MSBuildEmitSolution" 并赋予其值“1”
- 已将文件 "Microsoft.Build.Tasks.v12.0.dll" 从 "C:\Program Files (x86)\MSBuild.0\Bin\amd64" 复制到 "C:\Program Files (x86)\MSBuild.0\Bin\amd64"。不知道为什么这在我们的 BUILD 日志中被报告为错误,因为它不是 AMD 机器...
- 使用 NUGET,必须将包 "Microsoft.Net.Compilers" 添加到每个使用 C#6 语法的 C# 项目(基本上,所有项目)
并非所有上述步骤都是绝对必要的,但我建议肯定需要第 1 步和第 5 步。
HTH
格里夫
我们使用 TeamCity (9.0.1) 作为我们的构建服务器,但最近升级了我们的 ASP.NET MVC 解决方案以使用 VS2015 和 C#6 语法,我现在在我们的构建服务器上收到以下错误消息:
Can not start build runner
更具体地说:
C:\TeamCity\buildAgent\workee61c6c333dc3d\MyApplication\MyApplication.csproj.metaproj : error MSB4025: The project file could not be loaded. Could not find file 'C:\TeamCity\buildAgent\workee61c6c333dc3d\MyApplication\MyApplication.csproj.metaproj'.
我遵循了几个不同帖子中的建议(尽管这些帖子主要关注 TFS 而不是 TeamCity,并且不直接引用丢失的“.metaproj”文件):
因此,总而言之,我对构建服务器进行了以下更改:
- 已安装 Visual Studio 2015 更新 2
- 更改了执行构建的 PowerShell 脚本
来自:
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 =总是 /p:VisualStudioVersion=14.0
注:
如果我登录构建服务器并尝试编译解决方案 使用 VisualStudio 2015 然后这工作正常。
在上面提到的其中一个帖子中,它讨论了从 "TfvsTemplate.11.1.xaml" 到 "TfvsTemplate.12.xaml"。但据我所知 不知道,我不使用或引用它。也许我误会了 在这里,在这种情况下,下一步该怎么做的白痴指南是 非常感谢。
我以前遇到过这个问题,我认为您可以通过登录到 TeamCity 目录并删除工作目录中的所有文件来解决它。或者在结帐之前对工作目录执行 "clean"。我建议只手动删除文件。同样对于 TeamCity 9.1.6,您不需要在服务器上安装完整的 Visual Studio,只需安装 Microsoft Build Tools 2015 (https://www.microsoft.com/en-us/download/details.aspx?id=48159),然后使用 "MSBuild" 运行器类型或"Visual Studio (sln)" 亚军类型。
终于....我们修复了它。
我必须在构建服务器上执行以下步骤:
- 已安装 VS2015 更新 2
- 编辑环境变量 "PATH" 以更改 C:\Program Files (x86)\MSBuild.0\Bin\ 中的一项设置;到 C:\Program Files (x86)\MSBuild.0\Bin\;
- 因为我们使用 TeamCity 触发 PowerShell 脚本,而该脚本又触发 MSBuild。我将 PowerShell 模块 PSAKE 从 4.2 更新到 4.6(但这可能不是必需的)
- 创建了一个新的环境变量 "MSBuildEmitSolution" 并赋予其值“1”
- 已将文件 "Microsoft.Build.Tasks.v12.0.dll" 从 "C:\Program Files (x86)\MSBuild.0\Bin\amd64" 复制到 "C:\Program Files (x86)\MSBuild.0\Bin\amd64"。不知道为什么这在我们的 BUILD 日志中被报告为错误,因为它不是 AMD 机器...
- 使用 NUGET,必须将包 "Microsoft.Net.Compilers" 添加到每个使用 C#6 语法的 C# 项目(基本上,所有项目)
并非所有上述步骤都是绝对必要的,但我建议肯定需要第 1 步和第 5 步。
HTH
格里夫