Wie Sie benutzerdefinierte Anbieter in das Microsoft-Deployment Tool integrieren? [geschlossen]

StackOverflow https://stackoverflow.com/questions/4073954

Frage

Ich versuche, das Microsoft Web Deployment Tool und MSDeploy mit einem benutzerdefinierten Anbieter zu verlängern, weil ich benutzerdefinierte Aufgaben auf der Zielimplementierung Maschine als Teil des Prozesses ausgeführt werden soll. Die allgemeine Dokumentation ist ziemlich gut außerhalb der benutzerdefinierten Anbieters Entwicklung, aber die Dokumentation für jede Art von Erweiterung zu tun scheint nicht existent zu miserabel zu sein.

Ich habe dies erforscht seit mehreren Tagen und haben einige Stücke gefunden, die mir erlaubt haben ohne wirkliche Dokumentation ziemlich weit in den Prozess zu bekommen. Ich habe gehackt fast meinen Weg durch den Prozess, aber jetzt habe ich ein letztes Problem: MSDeploy wird nicht meine benutzerdefinierten Anbieter erkennen

.

Ich habe zwei Klassen ein, die erstellt Microsoft.Web.Deployment.DeploymentProviderFactory erstreckt (die sowohl die Namen und Eigenschaften zu Friendly Namen meiner benutzerdefinierten Anbieter „Archimedes“ außer Kraft gesetzt hat); die andere erstreckt Microsoft.Web.Deployment.DeploymentObjectProvider die auch eine überschriebene Eigenschaft Name „Archimedes“ hat. Ich tat dies, indem die benutzerdefinierte BatchProvider Beispiel folgende Sie online finden können. Es sieht wie folgt aus:

ArchimedesProviderFactory (die der Klasse zugeordnet Attribut DeploymentProviderFactory und hat die Bereitstellung ProviderFactory erstreckt):

public override string FriendlyName
{
    get { return "archimedes"; }
}

public override string Name
{
    get { return "archimedes"; }
}

Die ArchimedesProvider Klasse erweitert DeploymentObjectProvider und hat diese:

public override string Name
{
    get { return "archimedes"; }
}

In meiner sourcemanifest.xml Datei habe ich hinzugefügt einen Eintrag:

<archimedes path="..." />

Ich habe die Baugruppendatei platziert, die diese Klassen in% Programmdateien% \ IIS \ Microsoft Web Deploy \ Extensibility enthält, wie ich auch gerichtet wurde durch das Material, das ich online gefunden.

Das Komische ist, dass während der Erstellung eines Pakets in Visual Studio 2010, ist mein Provider-Code auf sie aus diesem Verzeichnis genannt hat - so VS definitiv zu verbinden ist meine Montag irgendwie dort platziert (zum Beispiel kann ich Ausnahmen auslösen sehen und dass sie während des Prozesses geworfen wurden für den Bau eines Pakets).

Jedoch während der tatsächlichen Testbereitstellung des Pakets aus der erzeugten .cmd-Datei, ich eine Fehlermeldung erhalten, dass die Fabrik für Anbieter „Archimedes“ kann nicht gefunden werden. Auch Folgendes eingeben:

MSDeply -verb:dump -source:archimedes -debug

Gibt die folgenden:

    Microsoft.Web.Deployment.DeploymentException: Unknown factory 'archimedes'.
   at Microsoft.Web.Deployment.DeploymentProviderSettingCollection..ctor(String factoryName)
   at Microsoft.Web.Deployment.DeploymentProviderOptions..ctor(String factoryName)
   at MSDeploy.MSDeploy.GetObjectParameters(Dictionary`2 parameters, Boolean isDestination, DeploymentBaseOptions& retbaseOptions, DeploymentProviderOptions& re
tproviderOptions)
   at MSDeploy.MSDeploy.ExecuteWorker()
   at MSDeploy.MSDeploy.Execute()
   at MSDeploy.MSDeploy.Main(String[] unusedArgs)
Error count: 1.

So abgesehen von der Tatsache, dass es erscheint für benutzerdefinierte Provider Entwicklung keine kohärenten, zentrale Quelle für die Dokumentation zu sein (Wer weiß, einen Ort, bitte sagen, ob Sie eine gefunden), mein Hauptproblem ist, dass aus irgendeinem Grunde Visual Studio wird mein Provider Fabrik aus der Baugruppendatei ich in den Extensibility Ordner geworfen, aber die tatsächliche MSDeploy / WebDeploy sieht es sehen und rufen nicht. Hat jemand irgendwelche Ideen?

Dank einer Tonne ...

War es hilfreich?

Lösung

OK, das war ein einfacher Fehler, obwohl ein nicht-offensichtliche seit dem Paket Aufbau Teil der Ordnung Code zugegriffen und nannte es von meinem Provider Montag. Das Problem war, dass da gerade über alles in den Web-Anwendung Zielen das 4.0 Framework der Klassenbibliothek Projekt, das ich mit dem benutzerdefinierten Anbieter Code hinzugefügt und tat. Ich hatte das Zielframework auf 2,0 zu setzen und alles begann zu arbeiten. Keiner der Fehlerberichterstattung war allzu offensichtlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top