2017-10-03 2 views
0

私はカスタムインストーラでDacFXを使用しています。私はCmd変数DefaultDataPath & DefaultLogPathを渡して、デフォルトのデータとログファイルの場所をオーバーライドしようとしていますが、データベースのファイルはまだデフォルトの場所に作成されています。これは非常にシンプルで簡単だと思われますが、スクリプトを生成してファイルに保存してコードをステップ実行した後でも、DacOptionsオブジェクトにはSqlCommmandVariableValuesの値が正しく設定されていますが、値。彼らは無視されているようです。DacFxはCmd変数を無視します:DefaultDataPath&DefaultLogPath

dacOptions.SqlCommandVariableValues.Add("DefaultDataPath", dataPath); 
dacOptions.SqlCommandVariableValues.Add("DefaultLogPath", logPath); 

答えて

0

私は反射で少しの時間を費やしたが、簡単にこれらを無視するかどうかを参照するか、ではないことができませんでした:)

私が過去に行ってきたことは、データベースを作成するために、最初のスクリプトを実行することです必要なファイル設定が存在しない場合は、空のデータベースをアップグレードするか、既存のファイルをアップグレードします。

SQLは非常に単純です:

if not exists(Select * from sys.databases where name = 'XX') 
begin 
    create database blah blah 

end 

SSDT/DacFxを持つことは、それはほとんどそこにあなたを取得しますが、あなたは時々ちょうど最初に救いの手を与える必要があり:)です。デフォルトのファイルを変更できない場合は、最初にSQLスクリプトを実行して設定してください。必要なすべての詳細と権限がすでに用意されているので、自分で簡単に行うこともできます。

また、私はバグとして接続を発生させ、それが修正されるか、少なくとも変更できない理由を知るかもしれません。

関連する問題