Я только что обновил свой существующий 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 в новом режиме?