Visual studio 2008 VS 2008编码和MSBuild执行任务
我有一个msbuild exec任务,它调用cmd文件来设置我的数据库 我使用的msbuild exec任务如下所示:Visual studio 2008 VS 2008编码和MSBuild执行任务,visual-studio-2008,encoding,msbuild,Visual Studio 2008,Encoding,Msbuild,我有一个msbuild exec任务,它调用cmd文件来设置我的数据库 我使用的msbuild exec任务如下所示: <Exec Command="$(SqlFolder)\Setup\SetupDatabase.cmd $(DBServer) MyDB $(SqlCmdRunner)" IgnoreExitCode="False"> <Output TaskParameter="ExitCode" ItemName="DBSetupExitCode"
<Exec Command="$(SqlFolder)\Setup\SetupDatabase.cmd $(DBServer) MyDB $(SqlCmdRunner)" IgnoreExitCode="False">
<Output TaskParameter="ExitCode" ItemName="DBSetupExitCode"/>
</Exec>
在setup cmd中,它使用osql运行我的sql脚本
一切正常,除了在VS2008中创建sql文件(表/存储过程等)时,从MSBuild运行时,编码(UTF-8?)会导致问题。我收到一个不正确的语法错误(靠近一个看起来像U的字符),但语法是正确的。如果在MSBuild之外执行cmd,它将按预期工作
如果我将sql文件“另存为”并使用US-ASCII“编码保存”,msbuild将不会出错,这就是为什么我认为这是一个编码问题
虽然“另存为”目前还有效,但似乎应该有更好的方法。我可以想象,其他使用MSBuild设置数据库的人遇到了这个问题,因此正在寻找建议/提示。这确实是一个奇怪的问题。解决方法是更新VisualStudio2008用于创建SQL文件的模板格式。只需在记事本中打开它们并另存为ANSI(或unicode,以您喜欢的为准)。从那时起,当您在VisualStudio中创建新的SQL文件时,它将自动获得正确的编码 您将在此目录下找到五个需要更新的.SQL文件:
C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\Templates\Database项目项