2015-12-29 8 views
9

Ich muss einen SSDT-Build abfangen, um das Buildskript zu ändern. Ich habe die MSDN Deployment Plan Modifier tutorial gefolgt, aber als ich das Datenbankprojekt zu bauen versuchen, erhalte ich folgende Fehlermeldung:SQL Server-Datentools: Fehler beim Laden von benutzerdefiniertem DeploymentPlanModifier: Erforderlicher Contributor mit ID konnte nicht geladen werden

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

ich Visual Studio 2012 (Version 11.0.61219.00 Update 5) und SSDT Version 11.1.50730.0 bin mit .

Ich signierte die Assembly, aber kein Passwort angegeben.

Ich habe mehrere Lösungen folgte ich online ohne Erfolg gefunden haben, darunter die folgenden:

  1. Visual Studio und SSDT aktualisiert;
  2. Kopieren MyDeploymentContributor.dll und MyDeploymentContributor.pdb an den folgenden Orten:

    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. Capturing ein Ereignisprotokoll für SSDT und DacFx (für nach Kevin Cunnanes Anweisungen unter https://social.msdn.microsoft.com/Forums/en-US/5c84ab8e-b50b-4ecd-86da-866ac3bb2248/known-issue-with-ssdt-extensibility-in-current-release?forum=ssdt). Hier sind die Ergebnisse aus dem DacFx log:

    • Core Services: SafeDirectoryCatalog: Assembly C:\Program Files (x86)\Microsoft Visual Stusio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensions\MyDeploymentContributor.dll hinzugefügt
    • Core Services: Erweiterung Lookup: Verzeichnis C:\Program Files (x86)\Microsoft Visual Stusio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensions zu Erweiterung Lookup Pfad hinzugefügt
    • Core Services: FilteringCompositionContainer: Auf der Suche nach oben Exporte für Microsoft.SqlServer.Dac.Deployment.DeploymentPlanExecutor
    • Core Services: FilteringCompositionContainer: Geänderte Teil Schaffung Politik zu
    • Nichtfreigegeben 210
    • Core Services: FilteringCompositionContainer: Auf der Suche nach oben Exporte für Microsoft.SqlServer.Dac.Deployment.DeploymentPlanModifier

Es gab keine ContributorLoader Nachrichten. Aus diesem Protokoll scheint der Contributor korrekt geladen zu sein. Das SSDT-Protokoll enthielt keine Ereignisse, die den Contributor erwähnten.

Es sind keine erforderlich Beiträger Argumente, so dass der DeploymentContributor Knoten in meiner .sqlproj Datei sieht wie folgt aus:

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

Jede Hilfe sehr geschätzt wird. Vielen Dank!

+0

Können Sie den Export Ihrer Contributor-Methode (OnExecute?) Posten auch bitte ein Beispiel von https://github.com/DacFxDeploymentContributors/Contributors und sehen, ob das funktioniert? Die Protokollierung ist eine gute, um zu sehen, ob alles richtig eingerichtet ist. –

+0

Meine OnExecute-Methode wird kopiert von [https://msdn.microsoft.com/en-us/library/ee461507 (v = vs.100) .aspx] (https://msdn.microsoft.com/en-us/library/ee461507(v=vs.100).aspx) und sieht so aus: [http://pastebin.com/CYYv8ZsE](http://pastebin. com/CYYv8ZsE). Ich habe versucht, die Mitwirkenden aus dem github-Link zu verwenden, den Sie bereitgestellt haben, und habe denselben Fehler (und dieselben DacFx-Protokolleinträge) wie zuvor erhalten. – Palladian1881

+0

Palladian, ich habe das gleiche Problem (in meinem Fall ist es VS 2013). Konnten Sie eine Lösung für dieses Problem finden? Müssen wir MyRefKey.snk zusammen mit der DLL in den Ordner "Extensions" kopieren? –

Antwort

2

Dank Ed Elliot (https://the.agilesql.club/Blogs/Ed-Elliott/About) konnte ich dieses Problem in meinem Fall lösen.

Ich folgte Eds Vorschlägen und es funktionierte.Ich habe einen Ordner wie C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions\[YourContributorName]\ erstellt und alle Inhalte (einschließlich DLLs) von C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120 dorthin kopiert.

Im Beitrag Projekt I verweisen die DLLs innerhalb C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions\[YourContributorName]\

Sobald das Projekt erfolgreich erstellt wurde, kopierte ich den Beitrag DLL und PDB-Dateien an folgendem Ort:

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

Vorher habe ich auf die DLLs von C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin verwiesen.

Hoffen, das würde jemandem helfen.

+0

Ich liebe es wirklich, wenn Werkzeuge wie diese immer sagen, dass etwas nicht in Ordnung ist und dir nie sagen, was falsch ist und wie du es reparieren kannst. –