4

我正在尝试启用我的 VS 解决方案的增量构建。在 xaml 构建过程模板的 GUI 中,我设置"Clean Workspace""None"添加/p:IncrementalBuild=True为 MSBuild 参数。然后我签入了对文件的更改,但是当我运行 TFS 构建时,我立即收到以下错误:

Unable to perform the get operation because the file already exists locally

Exception Message: One or more errors occurred while performing a Get operation. (type GetException)
Exception Stack Trace:    at Microsoft.TeamFoundation.Build.Workflow.Activities.SyncWorkspaceInternal.ThrowIfErrorsOccurred.Execute(CodeActivityContext context)
   at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

我相信 TFS 获取了我的文件,但无法覆盖构建代理上的现有文件并出现错误。如何强制它覆盖文件?

4

2 回答 2

6

该文件是可写的。当有可写文件时,除非使用 /overwrite 选项,否则 get 不会覆盖它。但是,您需要弄清楚文件是如何变得可写的。您可能希望返回到创建新工作区的默认选项,使用详细日志运行构建,并查看是什么使文件可写。

于 2015-03-15T01:44:53.340 回答
0

在 XAML 构建中,您可以为 SyncWorkspace 活动添加 GetOptions 输入。 <mtbwa:SyncWorkspace _locID="Activity037" _locAttrData="DisplayName" DisplayName="Get Workspace" VersionOverride="[GetVersion]" Workspace="[Workspace]" GetOptions="[Microsoft.TeamFoundation.VersionControl.Client.GetOptions.Overwrite]">

参考 DefaultTemplate.11.1.xaml。

TfvcTemplate.12.xaml 没有公开方法。

于 2016-08-15T21:30:53.120 回答