23 Stimmen

Ist es möglich, relative Pfade für SSIS-Pakete dtsConfig-Dateien zu verwenden?

Ich versuche, unsere SQL Server Integration Services-Pakete so portabel wie möglich zu machen, und das einzige Problem dabei ist, dass der Pfad zur Konfiguration immer ein absoluter Pfad ist, was das Testen und die Bereitstellung zu einem Problem macht. Gibt es Vorschläge, wie man das besser verwalten kann?

Ein weiteres Problem ist, wenn ein anderer Entwickler das Paket aus der Versionskontrolle holt, ist der Pfad spezifisch für den Rechner des Entwicklers.

15voto

Wenn Sie versuchen, Ihre Pakete mit Visual Studio auszuführen, wird der Pfad der Konfigurationsdatei dort fest einkodiert sein. Wenn Sie also Ihr Projekt verschieben, müssen Sie den Pfad in den Paketeinstellungen ändern. Um dies zu vermeiden, können Sie die Option Umgebungsvariable verwenden, um den Pfad der Konfigurationsdatei zu speichern. Dann brauchen Sie nur diese zu ändern.

Zum Testen und Bereitstellen sollten Sie jedoch das Dienstprogramm dtexec verwenden, um Ihre Pakete auszuführen. Erstellen Sie dafür einige Batch-Dateien. Vorzugsweise eine für jede verschiedene Umgebung. Hier kann der Pfad der Konfigurationsdatei relativ sein.

dtexec /File Package.dtsx /Conf configuration.dtsConfig

Dies ist der Fall, wenn Ihre Pakete im Dateisystem gespeichert sind. Sie können sie auch in SQL Server speichern. Sie können auch Ihre Konfiguration in SQL Server speichern, was mehr Flexibilität bietet.

3 Stimmen

1 für Umgebungsvariable. Es ist eine großartige Lösung für mehrere Entwickler.

6 Stimmen

Beachten Sie, dass, wenn Sie SSIS -> "Enable package configurations" (Paketkonfigurationen aktivieren) aktiviert haben, ignoriert wird, was Sie in den /Conf-Parameter eingeben, und verwendet, was fest in das Paket kodiert ist.

2voto

Thea Punkte 7764

Nach mehrstündigen Versuchen habe ich eine Lösung gefunden aquí (nicht die beste, aber sie funktioniert)

  1. Suchen Sie Ihre Konfigurationsdateien (dtsconfig-Dateien) in demselben Verzeichnis wie Ihre Lösungsdatei (.sln-Datei)
  2. Öffnen Sie Ihre Projektmappe IMMER durch Doppelklick auf die Projektmappendatei (.sln-Datei). Dadurch wird der "Arbeitsordner" auf den Speicherort der Projektmappe festgelegt und Ihre Konfigurationsdatei wird korrekt gelesen

Ansonsten haben die relativen Pfade bei mir nicht funktioniert.

1voto

Debarchan Punkte 11

Sehen Sie sich das kostenlose Dienstprogramm an, mit dem Sie die Pfade der SSIS-Konfigurationsdateien ohne BIDS bearbeiten können: http://ssisconfigeditor.codeplex.com/

0voto

Mick Punkte 6128

Mein Standardtrick für diese Art von Problemen sind Mapping-Laufwerke.

Entweder durch Verwendung einer zugeordnetes Netzlaufwerk oder durch die Verwendung von Subst (beide Methoden sind austauschbar).

Ordnen Sie z.B. den Speicherort Ihres Pakets auf N:\ zu und verwenden Sie dann innerhalb Ihres Pakets Pfade mit N:\MyParentPackage.dtsx , N:\MyChildPackage.dtsx. Die Pakete können sich auf völlig unterschiedlichen Laufwerken in unterschiedlichen Ordnern auf unterschiedlichen Rechnern befinden, es wird funktionieren, sobald Sie den Speicherort des Pakets auf N:\ zuordnen.

Normalerweise lege ich ein Skript neben die Projektdateien, um das Laufwerk zuzuordnen, das das Laufwerk so zuordnet, dass es vorher einfach ausgeführt werden kann. Ein Problem, wenn Sie subst auf VISTA - Win8 verwenden, ordnen Sie es für erhöhte und nicht-erhöhte.

Ich verwende den gleichen Ansatz für Dateiverweise in Visual Studio-Projekten. Das einzige Problem bei diesem Ansatz ist, dass Sie zu viele Probleme in Ihrer Entwicklungsumgebung lösen müssen und Ihnen die Laufwerksbuchstaben ausgehen werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X