7

既存の SQL Server 2008 r2 .dbproj を SQL Server 2012 .sqlproj にアップグレードしました (SQL Server Data Tools を使用)。

以前は、プロジェクトで SQLCMD 変数を定義し、次の要素を追加して msbuild 値を使用するようにプロジェクト ファイルを編集して値を定義することができました。

<ItemGroup>
    <SqlCommandVariableOverride Include="ProjectDirectory=$(MSBuildProjectDirectory)" />
</ItemGroup>

これを PostDeployment スクリプトで次のように使用できます。

SELECT * INTO dbo.MyTable FROM dbo.MyTable WHERE 1=2
BULK INSERT dbo.MyTable
FROM  '$(ProjectDirectory)\data\dbo.MyTable.dat'
WITH (DATAFILETYPE = 'widenative')

ただし、アップグレード後、これは機能しなくなったようです。

同じエントリを新しい sqlproj に追加しようとしましたが、発行機能がそれを取得していないようで、値を指定する必要があります。を指定する$(MSBuildProjectDirectory)と、文字どおりに解釈されて失敗します。

新しい体制の下で、ローカル ファイルパスを指定したり、msbuild 値を使用したりするためのメカニズムは何ですか?

4

1 に答える 1