MSBuild 在构建时寻找旧版本的 Microsoft.Data.Tools.Schema.Sql 失败

MSBuild 在构建时寻找旧版本的 Microsoft.Data.Tools.Schema.Sql 失败

在安装并配置 2012 年的构建服务器后,我尝试进行 Azure 持续部署。

我已安装 TFS2012。服务器上有一个构建控制器和一个代理。连接到云 TFS2012。在这种情况下,我还使用 Azure 网站。我在构建服务器上安装了 Visual Studio 2012 Professional 和 SQL Server 2012。该项目没有数据库,所以我不确定它为什么寻找 10.3。我没有在服务器上看到该版本,但我看到了 11.0.2861.0。我需要更改一些配置才能查看较新的版本吗?我还在构建服务器上安装了 SSDT June 2012。编译成功,它实际上移动了所有文件并创建了一个包。但我收到此错误,导致构建事件失败。我遗漏了什么?

我收到以下错误消息:

Exception Message: The type initializer for 'Microsoft.Web.Deployment.DeploymentManager' threw an exception. (type TypeInitializationException)
Exception Stack Trace: 
Server stack trace: 
   at Microsoft.Web.Deployment.DeploymentProviderSettingCollection..ctor(String factoryName)
   at Microsoft.Web.Deployment.DeploymentProviderOptions..ctor(String factoryName)
   at Microsoft.Web.Deployment.DeploymentProviderOptions..ctor(DeploymentWellKnownProvider wellKnownProvider)
   at Microsoft.TeamFoundation.Deployment.Workflow.Activities.MSDeployWorker.RunCommand(String publishEndpoint, String targetSite, String userName, String password, String packagePath, String setParametersPath, Boolean allowUntrustedCertificates)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [0]: 
   at System.Activities.Statements.Throw.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)

Inner Exception Details:

Exception Message: The type initializer for 'Microsoft.Web.Deployment.BuiltInTypesCache' threw an exception. (type TypeInitializationException)
Exception Stack Trace:    at Microsoft.Web.Deployment.DeploymentProviderFactoryCollection.LoadFromRegistry()
   at Microsoft.Web.Deployment.DeploymentManager.LoadDeploymentManagerSettings()
   at Microsoft.Web.Deployment.DeploymentManager..cctor()

Inner Exception Details:

Exception Message: The provider 'Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderFactory' could not be loaded. (type DeploymentException)
Exception Stack Trace:    at Microsoft.Web.Deployment.DeploymentProviderFactory.Create(Type type)
   at Microsoft.Web.Deployment.BuiltInTypesCache.InspectTypesForWebDeployAttributes(IEnumerable`1 types, String dllName)
   at Microsoft.Web.Deployment.BuiltInTypesCache..cctor()

Inner Exception Details:

Exception Message: The type 'Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderFactory' could not be loaded. The configuration settings may not be valid. (type DeploymentException)
Exception Stack Trace:    at Microsoft.Web.Deployment.ReflectionHelper.CreateInstanceT
   at Microsoft.Web.Deployment.DeploymentProviderFactory.Create(Type type)

Inner Exception Details:

Exception Message: The type initializer for 'Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderBaseProviderFactory' threw an exception. (type TypeInitializationException)
Exception Stack Trace:    at System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)
   at System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)
   at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj)
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at Microsoft.Web.Deployment.ReflectionHelper.CreateInstanceT

Inner Exception Details:

Exception Message: Could not load file or assembly 'Microsoft.Data.Tools.Schema.Sql, Version=10.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. (type FileNotFoundException)
Exception Stack Trace:    at Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderBaseProviderFactory..cctor()

答案1

从注册表中删除以下项即可解决问题。

HKLM\Software\Microsoft\IIS Extensions\msdeploy\3\extensibility
HKLM\Software\Wow6432Node\Microsoft\IIS Extensions\msdeploy\3\extensibility

相关内容