2009-04-09 10 views
0

Da der Gründer von stackoverflow so viel darüber spricht, Änderungen einfach bereitstellen zu können, versuche ich, eine Lösung zu finden, um mein Problem zu lösen. Ein kurzer Hintergrund ist, dass ein Kunde mich kontaktiert hat und etwas in der Datenbank getan hat, das nicht so trivial ist, aber nicht so schrecklich schwierig ist (brauchte ungefähr einen Tag, um das Verfahren zum Laufen zu bringen). Unglücklicherweise muss der Client diesen "Fix" ungefähr 20 Mal und ohne meine Eingabe bereitstellen können, da er nicht dafür bezahlen wird.Bereitstellen eines CLR-Auslösers/Gespeicherte Prozedur mit WiX

Ich habe einen CLR-Trigger geschrieben, der etwas Arbeit, die sonst sehr schwierig wäre mit TSQL (XML-Dokument-Transformationen .. Ich bin es besser mit CLR vs TSQL). Die Bereitstellung ist in der Regel ein paar Zeilen SQL und Dumping der DLL in ein Verzeichnis von dem, was ich herausfischen kann (ich habe bisher nur von VS.Net bereitgestellt).

Ich muss in der Lage sein, ein MSI-Installationsprogramm bereitzustellen, das die Datei in einen Ordner legt und den Benutzer nach den Datenbankinformationen fragt, die zum Verbinden der CLR-Prozedur mit der richtigen Datenbank/Tabelle erforderlich sind.

Hat jemand das in der Vergangenheit getan, und wenn ja, sind Sie bereit, jemanden darüber zu schulen, wie das gemacht wird, damit ich dieses Projekt ins Bett bringen kann?

Dank

+0

Ich habe eine ähnliche Situation - Ich erstelle einen CLR-Trigger mit SharpDevelop, die die Aktion "Bereitstellen" nicht unterstützt. Daher muss ich die DLL manuell in die Datenbank bereitstellen. Haben Sie jemals den Prozess dafür ausgearbeitet? – JSacksteder

+0

Das Wesentliche ist, dass Sie einen Befehl "Create Extended Procedure" haben, den Sie für den SQL-Server ausführen, und verweisen Sie auf Ihre Dll. Ich habe nie den Job bekommen, für den ich das brauchte, also habe ich es nicht gelöst. Es tut uns leid. –

Antwort

2

Wenn Sie die Tücken der Platzierung der Datei vermeiden möchten, können Sie die alternative Form der CREATE ASSEMBLY-Anweisung verwenden können, die die Montage in Byte-Form angibt. z.B.

CREATE ASSEMBY MyAssembly FROM 0xFFFF....; 

Natürlich würden Sie die tatsächlichen Montage Bytes haben, wo ich 0xFFFF.... gesetzt haben.

+0

Hallo Dave, Ich bin wirklich auf den Aufbau eines MSI-Installers in diesem Fall konzentriert. –

Verwandte Themen