Web部署任务失败。 (“Microsoft.Web.Deployment.DeploymentManager”的types初始值设定项引发exception。)

从Visual Studio 2010使用Web部署时出现以下错误:Web部署任务失败。 (“Microsoft.Web.Deployment.DeploymentManager”的types初始值设定项引发exception。)

我突然开始出现这个错误! 我用相同的设置很多次地发布了我的网站,但是突然间它开始给我这个错误。 这可能是在网站的属性? 我正在使用asp.net,并有Windows 7和发布到Windows Server R2。 请帮忙!

好吧,所以我遇到了这个问题,这些答案都没有为我工作。 我将其简化为一行代码,即:

var deploymentOptions = new Microsoft.Web.Deployment.DeploymentBaseOptions(); 

如果您不手动将此传递给DeploymentManager,则会在内部实例化此对象。 更有趣的是,这个代码对于我来说只是一个控制台应用程序的唯一代码,如果我把它放到一个unit testing中,它就会失败(用vstest启动)。

以下是例外的全部内容:

 System.TypeInitializationException occurred HResult=-2146233036 Message=The type initializer for 'Microsoft.Web.Deployment.DeploymentManager' threw an exception. Source=Microsoft.Web.Deployment TypeName=Microsoft.Web.Deployment.DeploymentManager StackTrace: at Microsoft.Web.Deployment.DeploymentManager.GetLinkExtensions() at Microsoft.Web.Deployment.DeploymentBaseOptions..ctor() at SimpleTest.Test.UnitTest1.TestMethod1() in f:\Source\Projects\SimpleTest.Test\UnitTest1.cs:line 12 InnerException: System.TypeInitializationException HResult=-2146233036 Message=The type initializer for 'Microsoft.Web.Deployment.BuiltInTypesCache' threw an exception. Source=Microsoft.Web.Deployment TypeName=Microsoft.Web.Deployment.BuiltInTypesCache StackTrace: at Microsoft.Web.Deployment.BuiltInTypesCache.get_Factories() at Microsoft.Web.Deployment.DeploymentProviderFactoryCollection.LoadFromRegistry() at Microsoft.Web.Deployment.DeploymentProviderFactoryCollection..ctor() at Microsoft.Web.Deployment.DeploymentManager.LoadDeploymentManagerSettings() at Microsoft.Web.Deployment.DeploymentManager..cctor() InnerException: Microsoft.Web.Deployment.DeploymentException HResult=-2146233088 Message=The provider 'Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderFactory' could not be loaded. Source=Microsoft.Web.Deployment StackTrace: 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() InnerException: Microsoft.Web.Deployment.DeploymentException HResult=-2146233088 Message=The type 'Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderFactory' could not be loaded. The configuration settings may not be valid. Source=Microsoft.Web.Deployment StackTrace: at Microsoft.Web.Deployment.ReflectionHelper.CreateInstance[T](Type type, Object[] constructorArguments) at Microsoft.Web.Deployment.DeploymentProviderFactory.Create(Type type) InnerException: System.TypeInitializationException HResult=-2146233036 Message=The type initializer for 'Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderBaseProviderFactory' threw an exception. Source=mscorlib TypeName=Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderBaseProviderFactory StackTrace: 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.CreateInstance[T](Type type, Object[] constructorArguments) InnerException: System.IO.FileNotFoundException HResult=-2147024894 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. Source=Microsoft.Data.Tools.Schema.DbSqlPackage FileName=Microsoft.Data.Tools.Schema.Sql, Version=10.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a FusionLog="" StackTrace: at Microsoft.Data.Tools.Schema.MsDeploy.MsDeployProviderBaseProviderFactory..cctor() InnerException: 

在与拥有这个组件的微软团队交谈之后,我学到了一个简单的解决scheme:

在下面的path下findregistry中的一个键,指出问题程序集并将其删除:

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

问题registry项由SQL安装。

我有同样的问题,但安装SQL 2012和更改registry没有解决它。 在我的开发机器上重新安装Web Deploy 3.5之后 ,事情就变得清晰了。

只需卸载Microsoft dbsqlpackage提供程序。 有程序和function。 它不再使用。

对于我来说,我重新启动了Visual Studio并重build了该项目,并且能够重新发布(我没有看到这个答案,并且对我有用)。 在这个问题上尝试其他答案之前,也许这是你的第一步。

我重新安装了Web部署3.5,使其在Windows 8.1上工作。 找不到registry中的文件。

也许你需要在visual studio命令提示符下运行aspnet_regiis

我似乎遭受同样的问题,但只有在IIS Express本地运行(我的IIS 8实例运行此代码罚款)。

当我跟踪堆栈exception(三个内部例外)。 看来, 实际的例外情况如下:

 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.":"Microsoft.Data.Tools.Schema.Sql, Version=10.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 

奇怪的事情是这个DLL似乎驻留在@ C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Microsoft.Data.Tools.Utilities.dll但我实际上有这个DLL坐在那里。

这也是奇怪的,只有当我尝试初始化一个新的DeploymentBaseOptions时才会发生这种情况。 在我做任何事情之前(所以我不做任何SQL调用,甚至没有设置任何属性。

思考?

我能够通过重新安装SQL Server来解决此错误。 我用这个文件名从MSDN重新安装了SQL 2012 Express。

只有940 MB的下载。 似乎已经修复了我上周所有的手动卸载。

en_sql_server_2012_express_edition_with_tools_with_sp1_x64.exe

我希望有帮助。

我已经有了2014年的SSMS,这似乎没有在VS中发布任何问题。 在安装SQL Server 2014数据库引擎之后,这个问题就出现了。

Victor提到的registry项是空白的。 重新安装VS2012修复了这个问题。

做一个“修复”我的SQL Server安装修复了我的问题。