我有一个msbuild exec任务,调用一个cmd文件来设置我的数据库。VS 2008编码和MSBuild执行任务
我使用的MSBuild EXEC任务是这样的:
<Exec Command="$(SqlFolder)\Setup\SetupDatabase.cmd $(DBServer) MyDB $(SqlCmdRunner)" IgnoreExitCode="False">
<Output TaskParameter="ExitCode" ItemName="DBSetupExitCode"/>
</Exec>
在设置CMD,它使用OSQL运行我的SQL脚本。
一切都很好,除了当我在VS 2008中创建一个sql文件(表/存储过程等..)时,编码(UTF-8?)从MSBuild运行时导致问题。我收到一个不正确的语法错误(接近一个看起来像U的字符),但语法正确。如果我在MSBuild之外执行cmd,它将按预期工作。
如果我“另存为”SQL文件和“保存与编码”US-ASCII,msbuild不会错误,这就是为什么我认为这是一个编码问题。
虽然“另存为”现在可行,但似乎应该有更好的方法。我会想象其他人使用MSBuild安装他们的数据库已经遇到了这个问题,所以寻找建议/提示。