2015-12-29 21 views
9

ビルドスクリプトを変更するには、SSDTビルドをインターセプトする必要があります。私はMSDN Deployment Plan Modifier tutorialに従ってきましたが、私は、データベースプロジェクトをビルドしようとすると、私は次のエラーを取得する:SQL Serverデータツール:カスタムDeploymentPlanModifierの読み込み中にエラーが発生しました:IDを持つ投稿者が読み込めませんでした

Required contributor with id 'MyDeploymentContributor.SqlRestartableScriptContributor' 
could not be loaded. 

私は、Visual Studio 2012(バージョン11.0.61219.00アップデート5)とSSDTバージョンを使用しています11.1.50730.0 。

私はアセンブリに署名しましたが、パスワードを指定しませんでした。

私は、次のような私が無駄にオンライン見つけたいくつかのソリューションを、続いてきました:

  1. Visual StudioとSSDTを更新します。次の場所にMyDeploymentContributor.dllとMyDeploymentContributor.pdbコピー
  2. :SSDTのイベントログをキャプチャ

    1. C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Extensions
    2. C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin
    3. C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120
    4. C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions
  3. とDacFx(fo Kevin Cunnaneの指示をhttps://social.msdn.microsoft.com/Forums/en-US/5c84ab8e-b50b-4ecd-86da-866ac3bb2248/known-issue-with-ssdt-extensibility-in-current-release?forum=ssdtに書き込む)。

    • コアサービス:SafeDirectoryCatalog:アセンブリC:\Program Files (x86)\Microsoft Visual Stusio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensions\MyDeploymentContributor.dll
    • コアサービスを追加:ここでDacFxログからの結果は、FilteringCompositionContainer:ディレクトリC:\Program Files (x86)\Microsoft Visual Stusio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensionsは、拡張検索パスに
    • コアサービスを追加しました:拡張検索を見上げます非共有
    • への変更部分の作成ポリシー :FilteringCompositionContainer: Microsoft.SqlServer.Dac.Deployment.DeploymentPlanExecutor
    • コア・サービスの輸出210の
    • コアサービス:FilteringCompositionContainer:なしContributorLoaderメッセージはありませんでした Microsoft.SqlServer.Dac.Deployment.DeploymentPlanModifier

のための輸出を探しています。このログから、投稿者は正しく読み込まれているようです。 SSDTログには、寄稿者を述べたイベントは含まれていませんでした。

には必要な貢献者の引数がありませんので、私の.sqlprojファイル内DeploymentContributorノードは次のようになります。

<PropertyGroup> 
    <DeploymentContributors> 
     $(DeploymentContributors); MyDeploymentContributor.SqlRestartableScriptContributor 
    </DeploymentContributors> 
</PropertyGroup> 

すべてのヘルプは高く評価されています。ありがとう!

+0

貢献者メソッド(OnExecute?)の書き出しを投稿できますか?https://github.com/DacFxDeploymentContributors/Contributorsからサンプルを取得し、それが機能するかどうか確認してください。すべての設定が正しく行われているかどうかを確認するには、ログを記録するのが良い方法です。 –

+0

My OnExecuteメソッドが[https://msdn.microsoft.com/en-us/library/ee461507(v=vs.100).aspx]からコピーされています( https://msdn.microsoft.com/en-us/library/ee461507(v=vs.100).aspx)、次のようになります。[http://pastebin.com/CYYv8ZsE](http://pastebin。 com/CYYv8ZsE)。私はあなたが提供したgithubのリンクから貢献者を使ってみました、そして以前と同じエラー(と同じDacFxログエントリ)を得ました。 – Palladian1881

+0

Palladian、私はまったく同じ問題に直面しています(私の場合、VS 2013です)。この問題の解決策を見つけられましたか?また、MyRefKey.snkをdllと共にextensionsフォルダにコピーする必要がありますか? –

答えて

2

エド・エリオット(https://the.agilesql.club/Blogs/Ed-Elliott/About)のおかげで、私は私のケースでこの問題を解決できました。

私はEdの提案に従っていました。C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions\[YourContributorName]\のようなフォルダを作成し、すべての内容(DLLを含む)をC:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120からそこにコピーしました。貢献プロジェクトで

、私はプロジェクトが正常にビルドされたら、私は次の場所に貢献するの.dllと.PDBファイルをコピーしC:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions\[YourContributorName]\

内のDLLを参照:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions\[YourContributorName]\

以前、私はC:\Program Files (x86)\Microsoft SQL Server\110\DAC\binからDLLを参照していました。

これは誰かを助けるだろうと思っています。

+0

私は本当にこのようなツールが何か間違っているとあなたに伝えていないとき、何が間違っているのかを教えてくれません。 –

関連する問題