У меня есть задача msbuild exec, которая вызывает файл cmd для настройки моей базы данных.
Я использую задачу msbuild exec следующим образом:
<Exec Command="$(SqlFolder)\Setup\SetupDatabase.cmd $(DBServer) MyDB $(SqlCmdRunner)" IgnoreExitCode="False">
<Output TaskParameter="ExitCode" ItemName="DBSetupExitCode"/>
</Exec>
В установочном cmd для запуска сценариев sql используется osql.
Все хорошо, за исключением того, что когда я создаю файл sql (таблица / сохраненный процесс и т. Д.) В VS 2008, кодировка (UTF-8?) Вызывает проблемы при запуске из MSBuild. Я получаю неправильную синтаксическую ошибку (рядом с символом, который выглядит как U), но синтаксис правильный. Если я выполняю cmd за пределами MSBuild, он работает как положено.
Если я "Сохранить как" файл sql и "Сохранить с кодировкой" US-ASCII, msbuild НЕ выдаст ошибку, поэтому я считаю, что это проблема с кодировкой.
Пока "Сохранить как" работает, похоже, что должен быть лучший способ. Я хотел бы представить, чтобы другие, использующие MSBuild для настройки своей базы данных, столкнулись с этой проблемой, поэтому ищите советы / подсказки.