问题
I'm trying to enable incremental build of my VS solution. In the GUI for xaml build process template, I set "Clean Workspace"
to "None"
and added /p:IncrementalBuild=True
as an MSBuild argument. I then checked in changes to a file, but when I run my TFS build, I immediately get the following error:
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)
I believe TFS gets my file but cannot overwrite the existing file on the build agent and errors out. How can I force it to overwrite the file?
回答1:
The file is writable. When there's a writable file, get will not overwrite it unless the /overwrite option is used. However, you would need to figure out how the file is becoming writable. You may want to go back to the default option of creating a new workspace, running a build with verbose logs, and see what is making the file writable.
回答2:
In XAML Build, you can add a GetOptions input for the SyncWorkspace activity.
<mtbwa:SyncWorkspace _locID="Activity037" _locAttrData="DisplayName" DisplayName="Get Workspace" VersionOverride="[GetVersion]" Workspace="[Workspace]" GetOptions="[Microsoft.TeamFoundation.VersionControl.Client.GetOptions.Overwrite]">
See DefaultTemplate.11.1.xaml as a go-by.
TfvcTemplate.12.xaml doesn't expose a way to do it.
来源:https://stackoverflow.com/questions/29050654/tfs-incremental-build-error-unable-to-perform-the-get-operation-because-the-fi