私はポスト・デプロイスクリプトで、私はデータベースに二つのファイルからバイナリデータをインポートしたいのVisual Studio 2010でのデータベースプロジェクトを持っています。そのために、私はポスト・デプロイスクリプトファイルから参照されるファイルに次のように非常に多くのコードを持っている:データベースプロジェクトを展開する際に、プロジェクトルートを基準にファイルを参照する方法は?
INSERT INTO [dbo].[MyTable] ([Column1], [Column2])
SELECT t1.BulkColumn, t2.BulkColumn
FROM
OPENROWSET(BULK N'$(ProjectDirectory)\Scripts\Post-Deployment\TestData\t1.dat', SINGLE_BLOB) AS t1,
OPENROWSET(BULK N'$(ProjectDirectory)\Scripts\Post-Deployment\TestData\t2.dat', SINGLE_BLOB) AS t2;
このありは前に働いていました。私はどの時点で動作が止まったのかは分かりませんが、今のところ、エラーSQL01262: The variable 'ProjectDirectory' has not been defined
(皮肉なことに、展開後のスクリプト自体のエラー位置、行0の列0)だけです。私は、プロジェクトのルートの下にファイルを介し掘って、それはちょっと、みかんプロジェクトファイル自体に定義された、トップレベル<Project>
ノード内で次のを持っている:
$(ProjectDirectory)
を変更
<ItemGroup>
<SqlCommandVariableOverride Include="ProjectDirectory=$(MSBuildProjectDirectory)" />
</ItemGroup>
$(MSBuildProjectDirectory)
に変更上記のスニペットでエラーメッセージ内の変数名以外は何も表示されません。このエラーは、デプロイメントの検証段階で発生し、デプロイメント自体では発生しません。
デプロイメント後のスクリプトで、プロジェクトのルートディレクトリを基準にした参照ファイルを、データベース配備に含めるための正しい方法は何ですか?