none
Befüllung/Bindung der SQLCMD-Variablen bei Veröffentlichung eines SSDT-Projektes RRS feed

  • Frage

  • Hallo,

    In Abhängigkeit davon, auf welchen Server/Datenbank ich das Projekt veröffentliche (Entwicklung, Test, Live,...) muss ich vor dem Build-Vorgang ein paar Dateien kopieren. Ich habe daher in die Projektdatei folgendes Target eingefügt:

     <Target Name="BeforeBuild">
      <Message Text="MyVariable: $(MyVariable)" Importance="high" />
      <Message Text="Configuration: $(Configuration)" Importance="high" />
      <Message Text="Database: $(DatabaseName)" Importance="high" />
      <Copy Condition=" '$(MyVariable)' == 'Wert1' " SourceFiles="$(SourceFolder)\File1.txt" DestinationFiles="$(DestFolder)\File.txt" />
      <Copy Condition=" '$(MyVariable)' == 'Wert2' " SourceFiles="$(SourceFolder)\File2.txt" DestinationFiles="$(DestFolder)\File.txt" />
     </Target>
    


    Natürlich habe ich in den Projekteigenschaften $(MyVariable) und die beiden Pfadvariablen sinnvoll gefüllt. In der Ausgabe erhalte ich aber nur

    MyVariable:
    Configuration: Debug
    Database:

    Das heißt für mich: Die von mir definierte Variable ist leer, die Systemvariable $(Configuration) enthält einen definierten Wert und die Systemvariable $(DatabaseName) ist leer.

    Zu einem späteren Zeitpunkt in der Ausführung des Skriptes erhalte ich bei allen Ausgaben die erwarteten Werte.

    Meine Frage ist also: Wann und wie belegt MSBuild die SQLCMD-Variablen?

    Ich hoffe, da kann mir jemand weiterhelfen.

    Vielen Dank im Voraus,

    Wolfgang


    Freitag, 17. April 2020 17:23

Antworten

  • Hallo Wolfgang,

    Wenn Du eine zusätzliche Variable hinzufügen möchtest, solltest Du das SQL-Skript vor der Bereitstellung und das SQL-Skript nach der Bereitstellung im SQLCMD-Modus öffnen, wie in diesem Artikel beschrieben:
    Access Build variables inside Pre and Post deployment scripts SSDT

    Gruß,

    Ivan Dragov

    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    • Als Antwort markiert AWombl Dienstag, 17. November 2020 11:33
    Freitag, 24. April 2020 16:23
    Administrator