Sql server SQL Server数据工具:加载自定义DeploymentPlanModifier时出错:无法加载id为的必需参与者
我需要截取一个SSDT构建来修改构建脚本。我遵循了,但当我尝试构建数据库项目时,出现以下错误:Sql server SQL Server数据工具:加载自定义DeploymentPlanModifier时出错:无法加载id为的必需参与者,sql-server,sql-server-data-tools,Sql Server,Sql Server Data Tools,我需要截取一个SSDT构建来修改构建脚本。我遵循了,但当我尝试构建数据库项目时,出现以下错误: Required contributor with id 'MyDeploymentContributor.SqlRestartableScriptContributor' could not be loaded. 我正在使用Visual Studio 2012(版本11.0.61219.00更新5)和SSDT版本11.1.50730.0 我对程序集进行了签名,但没有指定密码 我在网上找到了几种解决
Required contributor with id 'MyDeploymentContributor.SqlRestartableScriptContributor'
could not be loaded.
我正在使用Visual Studio 2012(版本11.0.61219.00更新5)和SSDT版本11.1.50730.0
我对程序集进行了签名,但没有指定密码
我在网上找到了几种解决方案,但都没有效果,包括:
C:\ProgramFiles(x86)\Microsoft SQL Server\110\DAC\bin\Extensions
C:\ProgramFiles(x86)\Microsoft SQL Server\110\DAC\bin
C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120
C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions
- 核心服务:SafeDirectoryCatalog:Assembly
增加C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensions\MyDeploymentContributor.dll
- 核心服务:扩展查找:目录
添加到扩展查找路径C:\程序文件 (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensions
- 核心服务:FilteringCompositionContainer:查找的导出
Microsoft.SqlServer.Dac.Deployment.DeploymentPlanExecutor
- 核心服务:FilteringCompositionContainer:更改的部件创建策略 不分
- 核心服务:FilteringCompositionContainer:查找的导出
Microsoft.SqlServer.Dac.Deployment.DeploymentPlanModifier
ContributorLoader
消息。从该日志中,参与者似乎正在正确加载。SSDT日志不包含任何提到贡献者的事件
没有必需的contributor参数,因此.sqlproj文件中的DeploymentContributor
节点如下所示:
<PropertyGroup>
<DeploymentContributors>
$(DeploymentContributors); MyDeploymentContributor.SqlRestartableScriptContributor
</DeploymentContributors>
</PropertyGroup>
$(部署贡献者);MyDeploymentContributor.SqlRestartableScriptContributor
感谢您的帮助。谢谢 多亏了Ed Elliot(),我才能够解决我的问题
我听从了埃德的建议,结果成功了。我创建了一个类似C:\ProgramFiles(x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions\[YourContributorName]\
的文件夹,并将C:\ProgramFiles(x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120
中的所有内容(包括DLL)复制到那里
在contributor项目中,我引用了C:\ProgramFiles(x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions\[YourContributorName]\
成功构建项目后,我将contributor.dll和.pdb文件复制到以下位置:
C:\ProgramFiles(x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions\[YourContributorName]\
以前,我是从C:\ProgramFiles(x86)\MicrosoftSQLServer\110\DAC\bin
引用DLL的
希望这能对其他人有所帮助。你能发布你的贡献者方法(OnExecute?)的导出吗?请同时从中获取一个示例,看看是否有效?日志记录是一个很好的方法,可以查看所有设置是否正确。我的OneExecute方法是从中复制的,如下所示:。我尝试使用您提供的github链接中的贡献者,得到了与之前相同的错误(以及相同的DacFx日志条目)。Palladian,我面临着完全相同的问题(在我的案例中,是VS 2013)。您是否能够找到此问题的解决方案。另外,我们是否需要将MyRefKey.snk与dll一起复制到extensions文件夹中?我真的很喜欢这样的工具总是告诉您有什么问题,而从不告诉您什么问题以及如何解决。要补充一点:如果您使用DacFx nuget包(或程序集)以编程方式发布,程序集需要位于当前目录中名为“Extensions\[YourContributorName]的子目录中`