È necessario intercettare un build SSDT per modificare lo script di build. Ho seguito il MSDN Deployment Plan Modifier tutorial, ma quando tento di costruire il progetto di database, ottengo il seguente errore:Strumenti dati SQL Server: Errore durante il caricamento di DeploymentPlanModifier personalizzato: Impossibile caricare il contributore richiesto con ID
Required contributor with id 'MyDeploymentContributor.SqlRestartableScriptContributor'
could not be loaded.
Sto usando Visual Studio 2012 (versione 11.0.61219.00 Aggiornamento 5) e SSDT Versione 11.1.50730.0 .
Ho firmato l'assembly ma non ho specificato una password.
Ho seguito diverse soluzioni che ho trovato on-line senza alcun risultato, tra cui i seguenti:
- Aggiornamento Visual Studio e SSDT;
Copia MyDeploymentContributor.dll e MyDeploymentContributor.pdb alle seguenti posizioni:
C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Extensions
C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\Extensions
Cattura di registro eventi per SSDT e DacFx (fo seguendo le istruzioni di Kevin Cunnane allo https://social.msdn.microsoft.com/Forums/en-US/5c84ab8e-b50b-4ecd-86da-866ac3bb2248/known-issue-with-ssdt-extensibility-in-current-release?forum=ssdt). Ecco i risultati del registro DacFx:
- Core Services: SafeDirectoryCatalog: Assemblea
C:\Program Files (x86)\Microsoft Visual Stusio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensions\MyDeploymentContributor.dll
aggiunti - Core Services: estensione Lookup: directory
C:\Program Files (x86)\Microsoft Visual Stusio 11.0\Common7\IDE\Extensions\Micrsoft\SQLDB\DAC\120\Extensions
aggiunto al prolungamento percorso di ricerca - Core Services: FilteringCompositionContainer: Sguardo in su esportazioni
Microsoft.SqlServer.Dac.Deployment.DeploymentPlanExecutor
- core Services: FilteringCompositionContainer: ha cambiato la politica di creazione parte a NonShared
- Core Services: FilteringCompositionContainer: Sguardo in su per le esportazioni
Microsoft.SqlServer.Dac.Deployment.DeploymentPlanModifier
- Core Services: SafeDirectoryCatalog: Assemblea
Non c'erano ContributorLoader
messaggi. Da questo registro, il contributore sembra caricarsi correttamente. Il registro SSDT non conteneva eventi che menzionavano il contributore.
non ci sono argomenti collaboratore richiesti, quindi il nodo DeploymentContributor
nel mio file .sqlproj assomiglia a questo:
<PropertyGroup>
<DeploymentContributors>
$(DeploymentContributors); MyDeploymentContributor.SqlRestartableScriptContributor
</DeploymentContributors>
</PropertyGroup>
Ogni aiuto è apprezzato. Grazie!
Puoi pubblicare l'esportazione del tuo metodo di contributore (OnExecute?), Per favore prendi anche un esempio da https://github.com/DacFxDeploymentContributors/Contributors e vedi se funziona? La registrazione è buona per vedere se tutto è impostato correttamente –
Il metodo My OnExecute viene copiato da [https://msdn.microsoft.com/en-us/library/ee461507 (v = vs.100) .aspx] (https://msdn.microsoft.com/en-us/library/ee461507(v=vs.100).aspx) e assomiglia a questo: [http://pastebin.com/CYYv8ZsE](http://pastebin. com/CYYv8ZsE). Ho provato ad usare i contributors dal link github che hai fornito, e ho ottenuto lo stesso errore (e le stesse voci del registro DacFx) come prima. – Palladian1881
Palladian, sto affrontando lo stesso identico problema (nel mio caso, è VS 2013). Sei riuscito a trovare una soluzione a questo problema. Inoltre, abbiamo bisogno di copiare MyRefKey.snk insieme con la DLL alla cartella estensioni? –