TF270003:无法复制

Cod*_*ick 5 msbuild tfs tfs2010 visual-studio-2013

这适用于:

  • Visual Studio 2013
  • Team Foundation Server 2010

错误:

TF270003:无法复制.确保源目录\\ TFSFileStore\TFSBuild\Xxx\Yyy\_PublishedWebsites\Zzz存在且您具有相应的权限.

_PublishedWebsites不存在.问题是它不是由MSBuild创建的.即使我要手动创建这些文件夹,也不会在那里复制文件.

我们刚刚从Visual Studio 2010升级到2013.


仔细阅读日志文件后,似乎使用了错误的MSBuild.它正在使用:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
Run Code Online (Sandbox Code Playgroud)

什么时候应该使用:

C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe
Run Code Online (Sandbox Code Playgroud)

有关如何让TFS使用正确的MSBuild可执行文件的任何想法?


我关注了http://hamidshahid.blogspot.com/2013/10/building-visual-studio-2013-solutions.html:

1)查找MSBuild活动的所有实例.该活动在构建模板中命名为"Run MSBuild for Project",如下所示:

在此输入图像描述

2)将活动的ToolsPath更改为指向MSBuild 12.0 exe文件,如下所示:

在此输入图像描述

但是...登录诊断模式显示以下内容为Run MSBuild for Project:

Initial Property Values
    AdditionalVCOverrides = 
    CommandLineArguments = /p:SkipInvalidConfigurations=true /tv:12.0
    Configuration = Release
    GenerateVSPropsFile = True
    LogFile = 
    LogFileDropLocation = \\Xxx\Yyy\Zzz\logs
    MaxProcesses = 1
    OutDir = E:\Builds\Xxx\Binaries
    Platform = Any CPU
    Project = E:\Builds\Xxx\Xxx.sln
    ResponseFile = 
    RunCodeAnalysis = AsConfigured
    Targets = 
    TargetsNotLogged = String[] Array
    ToolPath = 
    ToolPlatform = X86
    Verbosity = Diagnostic

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
Run Code Online (Sandbox Code Playgroud)

不知何故,ToolPath我设置的属性:

C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\
Run Code Online (Sandbox Code Playgroud)

被覆盖并设置为空.

Cod*_*ick 2

在我的构建定义中,我最终创建了一个Sequence变量,我调用该变量MSBuildToolPath并将其值设置为C:\Program Files (x86)\MSBuild\12.0\Bin

仍然在我的构建定义中,我从那里找到了每个Run MSBuild for Project活动并将其ToolPath属性设置为上述MSBuildToolPath变量。

这使得 MSBuild最终使用了正确的版本。

然而,我的快乐并没有持续多久,因为接下来的问题是MSBuild找不到该*.metaproj文件。

经过一些研究,我们发现我们可以创建一个环境系统变量并将MSBUILDEMITSOLUTION其值设置为1来强制创建该文件。

完成后,我们就成功构建了文件夹_PublishedWebsites\Zzz并部署到我们的 Web 服务器......终于!