要投入需要加載一個特定的貢獻者,那麼你需要手動編輯.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,因此該路徑不一定存在。 –