要投入需要加载一个特定的贡献者,那么你需要手动编辑.sqlproj文件并添加这个dacpac:
<PropertyGroup> <DeploymentContributors>$(DeploymentContributors);AgileSqlClub.DeploymentPlanLogger</DeploymentContributors> </PropertyGroup>
后
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
更改“ AgileSqlClub.DeploymentPlanLogger“,无论您的贡献者如何导出其名称(例如[ExportDeploymentPlanModifier(”AgileSqlClub.DeploymentPlanLogger“,”0.1.0.0“)])
添加此XML会导致你的“Origin.xml”你dacpac有这样的:
<RequiredContributors> <DeploymentContributor Name="AgileSqlClub.DeploymentPlanLogger" Version="0.1.0.0" /> </RequiredContributors> </DeploymentContributors>
你可能只是谁曾经使用此功能,所以谁知道它是否正常工作的人之一? ?让大家知道!
您还需要将贡献者部署到您正在构建dacpac的计算机上,以及部署或生成部署脚本的计算机上。在机器上,你会部署来自:
的dacfx看起来找到部署贡献者的路径是硬编码为:
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86),@“微软SQL Server \ 120 \ DAC \ bin \ Extensions“)
所以在我的系统上是”c:\ program files(x86)\ Microsoft SQL Server \ 120 \ DAC \ bin \ Extensions“。
http://agilesqlclub.codeplex.com/wikipage?title=Deploying&referringTitle=Documentation
参看“如果你在SSDT发布”:
在机器上编译时,你需要它是链接中的视觉工作室路径dacpac您将使用
(我用VS 2015年系统上是C:\ Program Files文件(x86)的\微软的Visual Studio 14.0 \ Common7 \ IDE \扩展\微软\ SQLDB \ DAC \ 120个\扩展)
另一件事是当你把你的贡献者复制到t时他扩展目录,你可以把它们放在另一个文件夹,所以你可以保留你的扩展和任何依赖,从任何其他贡献者将有自己的一套依赖项(和DLL地狱死于.net哈哈)
Out of兴趣你的贡献者做什么?
如果是OSS请考虑分享它:
https://github.com/DacFxDeploymentContributors/Contributors
埃德
部署贡献者参与数据的升级。我们有一些数据需要与第三方程序集进行一些转换,我们正在尝试将部署贡献者作为可能的解决方案。 –
好的,对不起,我重新阅读你的问题,希望这回答得更好:) –
你确定那个硬编码的路径吗?我们正在使用NuGet取消Microsoft.SqlServer.Dac,因此该路径不一定存在。 –