我正在尝试在 teamcity 中构建一个项目。它将执行 TFS 的签出,并且文件位于构建服务器本地。如果我在服务器上手动运行构建命令,它会起作用:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\msbuild.exe C:\TeamCity\buildAgent\work\3446a5bd436eea87\Dev\Dev\project\myproj\myproj.csproj /t:build
在 Teamcity 中,我有一个 MSBuild 的构建步骤:
构建文件路径为:Dev\Dev\project\myproj\myproj.csproj”
工作目录留空
mbuild版本:微软.net框架4.0
msbuild工具版本:4.0
运行平台:X86
目标:我尝试过构建“build”并留空
命令行参数留空
如果我创建一个命令行构建任务并运行上面的命令行,它就可以工作。我不确定 teammcity 中的命令行和 msbuild 任务之间有什么区别。
EDIT
我在工作目录上尝试了一些变体:
项目中的输出路径设置为..\Build\Tools\myproj\
所以我将 teamcity 中的工作目录设置为: Dev\Dev\project\Build\Tools\myproj\
这没有帮助。
以下是 teamcity 的确切输出:
Starting: C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.MsBuildBootstrap.exe /workdir:C:\TeamCity\buildAgent\work\3446a5bd436eea87\Dev\Dev\project\Build\Tools\myproj /msbuildPath:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
in directory: C:\TeamCity\buildAgent\work\3446a5bd436eea87\Dev\Dev\project\Build\Tools\myproj
Failed to start MSBuild.exe. Illegal characters in path.
System.ArgumentException: Illegal characters in path.
at System.IO.Path.CheckInvalidPathChars(String path)
at System.IO.Path.IsPathRooted(String path)
at JetBrains.TeamCity.Utils.FileUtil.MakeFullPath(String path, String workDir) in c:\BuildAgent\work\c2314fd21f15dc97\src\Utils\src\FileUtil.cs:line 48
at JetBrains.BuildServer.MSBuildBootstrap.RunArgs.get_ProjectFile() in c:\BuildAgent\work\c2314fd21f15dc97\src\MSBuildBootstrap\src\RunArgs.cs:line 156
at JetBrains.BuildServer.MSBuildBootstrap.Impl.MSBuildBootstrapFactory.Create(IClientRunArgs args) in c:\BuildAgent\work\c2314fd21f15dc97\src\MSBuildBootstrap.Core\src\Impl\MSBuildBootstrapFact ory.cs:line 29
at JetBrains.BuildServer.MSBuildBootstrap.Program.Run(String[] _args) in c:\BuildAgent\work\c2314fd21f15dc97\src\MSBuildBootstrap\src\Program.cs:line 67
尝试编辑构建配置并删除引号构建文件路径 option.
如果你有:
“开发\开发\项目\myproj\myproj.csproj”
只要让:
开发\开发\项目\myproj\myproj.csproj
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)