Чтобы поместить в dacpac, что вы хотите конкретный вклад загружен, то вам необходимо вручную отредактировать файл .sqlproj и добавить:
<PropertyGroup> <DeploymentContributors>$(DeploymentContributors);AgileSqlClub.DeploymentPlanLogger</DeploymentContributors> </PropertyGroup>
ПОСЛЕ
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
Change " 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), @ "Microsoft SQL Server \ 120 \ DAC \ bin \ Extensions ")
Так что в моей системе это« c: \ program files (x86) \ Microsoft SQL Server \ 120 \ DAC \ bin \ Extensions ».
На машине вы будете использовать при компиляции dacpac вам это нужно в Visual Studio пути, который находится в ссылке:
http://agilesqlclub.codeplex.com/wikipage?title=Deploying&referringTitle=Documentation
Смотрите раздел «Если вы публикуете в SSDT»:
(на моей системе с против 2015 это C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SQLdb в Lazarus \ DAC \ 120 \ Extensions)
Еще одна вещь что, когда вы копируете своего вкладчика в t он расширяет каталоги, вы можете поместить их в другую папку, чтобы вы могли сохранить свои расширения и любые зависимости, которые были отделены от любых других участников, у которых будет свой собственный набор зависимостей (и dll hell умирает с .net lol)
Из интересно, что делает ваш вкладчик?
Если ОСС пожалуйста рассмотреть вопрос об обмене его:
https://github.com/DacFxDeploymentContributors/Contributors
Ed
Вкладчик развертывание участвует в обновлении данных. У нас есть некоторые данные, которые требуют некоторой трансформации с сторонними сборками, и мы пытаемся использовать вкладчиков для развертывания в качестве возможного решения. –
ОК, извините, я перечитываю ваш вопрос и надеюсь, что на этот раз это лучше ответит :) –
Вы уверены в том, что жестко закодированный путь? Мы вытаскиваем Microsoft.SqlServer.Dac с NuGet, так что путь не обязательно существует. –