2016-03-03 74 views
2

我們已經從TFS 2012遷移到TFS 2015,遷移後我們的構建不起作用。我們正在得到下面的錯誤。 我無法在互聯網上找到很多關於此的信息。 請幫忙。TFS 2015生成從2012年遷移後發生的錯誤

TF215097: An error occurred while initializing a build for build definition \Cockpit\DB.Dev.MetadataDB.Build: 
Exception Message: Could not load file or assembly 'Microsoft.TeamFoundation, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. (type FileNotFoundException) 
Exception Stack Trace: at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
at System.Reflection.RuntimeAssembly.LoadWithPartialNameInternal(AssemblyName an, Evidence securityEvidence, StackCrawlMark& stackMark) 
at System.Reflection.Assembly.LoadWithPartialName(String partialName) 
at System.Activities.Expressions.AssemblyReference.LoadAssembly(AssemblyName assemblyName) 
at System.Activities.Expressions.AssemblyReference.GetAssembly(AssemblyName assemblyName) 
at Microsoft.VisualBasic.Activities.VisualBasicHelper.Initialize(HashSet`1 refAssemNames, HashSet`1 namespaceImportsNames) 
at Microsoft.VisualBasic.Activities.VisualBasicHelper.Compile[T](String expressionText, CodeActivityPublicEnvironmentAccessor publicAccessor, Boolean isLocationExpression) 
at Microsoft.VisualBasic.Activities.VisualBasicValue`1.CacheMetadata(CodeActivityMetadata metadata) 
at System.Activities.CodeActivity`1.OnInternalCacheMetadataExceptResult(Boolean createEmptyBindings) 
at System.Activities.Activity`1.OnInternalCacheMetadata(Boolean createEmptyBindings) 
at System.Activities.Activity.InternalCacheMetadata(Boolean createEmptyBindings, IList`1& validationErrors) 
at System.Activities.ActivityUtilities.ProcessActivity(ChildActivity childActivity, ChildActivity& nextActivity, Stack`1& activitiesRemaining, ActivityCallStack parentChain, IList`1& validationErrors, ProcessActivityTreeOptions options, ProcessActivityCallback callback) 
at System.Activities.ActivityUtilities.ProcessActivityTreeCore(ChildActivity currentActivity, ActivityCallStack parentChain, ProcessActivityTreeOptions options, ProcessActivityCallback callback, IList`1& validationErrors) 
at System.Activities.ActivityUtilities.CacheRootMetadata(Activity activity, LocationReferenceEnvironment hostEnvironment, ProcessActivityTreeOptions options, ProcessActivityCallback callback, IList`1& validationErrors) 
at System.Activities.Validation.ActivityValidationServices.InternalActivityValidationServices.InternalValidate() 
at Microsoft.TeamFoundation.Build.Workflow.WorkflowHelpers.ValidateWorkflow(Activity activity, ValidationSettings validationSettings) 
at Microsoft.TeamFoundation.Build.Hosting.BuildProcessCache.LoadFromXaml(String workflowXaml, TextExpressionImports textExpressionImports) 
at Microsoft.TeamFoundation.Build.Hosting.BuildControllerWorkflowManager.PrepareRequestForBuild(WorkflowManagerActivity activity, IBuildDetail build, WorkflowRequest request, IDictionary`2 dataContext) 
at Microsoft.TeamFoundation.Build.Hosting.BuildWorkflowManager.TryStartWorkflow(WorkflowRequest request, WorkflowManagerActivity activity, BuildWorkflowInstance& workflowInstance, Exception& error, Boolean& syncLockTaken) 
Inner Exception Details: 
Exception Message: Could not load file or assembly 'Microsoft.TeamFoundation, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. (type FileNotFoundException) 
Exception Stack Trace: 

回答

1

檢查您定製的XAML文件並確保已刪除對Version=11.0.0, PublicKeyToken=123445的任何引用。只需以簡單的名稱提及大會。這允許Team Build加載與生成服務器版本相匹配的版本。

如果幸運的話,舊的自定義是二進制兼容的,但在最壞的情況下,您需要針對當前版本的TFS CLient對象模型重新編譯它們。

參見:

1

TFS 2015年在構建服務的配置發佈了一個不正確綁定重定向; TFSBuildServiceHost.exe.config。

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.TeamFoundation" 
        publicKeyToken="b03f5f7f11d50a3a" 
        culture="neutral"/> 
    <bindingRedirect oldVersion="10.0.0.0-12.9.0.0" newVersion="14.0.0.0"/> 
</dependentAssembly> 

沒有Microsoft.TeamFoundation, Version=14.0.0.0

Microsoft.TeamFoundation.dll僅在TFS 2012之前存在,之後將此dll中的名稱空間合併到Microsoft.TeamFoundation.Common.dll中。我已經向微軟提出了Connect Bug。您可以將模板中的Microsoft.TeamFoundation引用更新爲Microsoft.TeamFoundation.Common,或者將重定向刪除/修改爲​​以下內容。

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.TeamFoundation" 
        publicKeyToken="b03f5f7f11d50a3a" 
        culture="neutral"/> 
    <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0"/> 
</dependentAssembly> 

這裏需要說明的是,你是在你正在運行TFS 2012相同的基礎架構上運行TFS 2015年建立的服務(或者至少安裝有相同的依賴),該Microsoft.TeamFoundation.dll是用Visual分佈Studio 2012及之前。