【发布时间】:2011-05-18 22:00:55
【问题描述】:
作为 sql server 2005 的一部分,有大容量复制命令“bcp.exe”(http://msdn.microsoft.com/en-us/library/ms162802%28SQL.90%29.aspx)
我们正在使用 exec 任务从我们的 msbuild 脚本运行 bcp 命令。不幸的是,当 bcp 无法加载一行数据时,构建仍然成功。
我尝试(根据下面的构建脚本 sn-p)指定一个错误文件,并检查它是否存在,不幸的是,这意味着即使 bcp 完全成功,构建也总是失败,因为看起来 bcp 总是会创建错误文件如果没有错误。
<ItemGroup>
<bcpFiles Include="$(DataPath)\*.txt" />
</ItemGroup>
<Delete Files="BcpErrors.txt" />
<Message Text="bcp $(DatabaseName).dbo.%(bcpFiles.FileName) in %(bcpFiles.FullPath) -eBcpErrors.txt -c -E -q -t"`" -r"`\n" $(bcpConnectionString)" />
<Exec Command="bcp $(DatabaseName).dbo.%(bcpFiles.FileName) in %(bcpFiles.FullPath) -eBcpErrors.txt -c -E -q -t"`" -r"`\n" $(bcpConnectionString)" />
<Error Condition="Exists('BcpErrors.txt')" Text="One or more bcp commands contained errors." />
如果 bcp 无法加载任何数据,我有什么方法可以让 msbuild 无法构建?
【问题讨论】:
-
BCP 失败时是否产生任何确定性输出?
-
它会在控制台上生成错误文本,以及在控制台上复制的行数信息,但仅此而已。
标签: sql-server-2005 msbuild bcp