Visual Studio 2017数据库项目Post-Deploy脚本引用文件报72001错误
解决VS2017数据库项目PostDeploy脚本:r引用文件报错的思路
我之前处理过类似的问题,给你几个实用的排查和解决方向,应该能帮你解决这个“明明文件存在却报错找不到”的问题:
检查被引用脚本的「构建操作」
那些被:r引用的.sql文件(比如ErrorMessageLookup.sql),别把它们的构建操作设为Build——右键文件→属性,把「构建操作」改成None。因为如果是Build,VS会把它们当作独立的数据库对象脚本编译,反而会干扰PostDeploy脚本的路径解析逻辑。用项目宏替代硬编码相对路径
:r命令的相对路径基准是项目的输出目录,不是脚本所在目录。你可以改用VS内置的项目宏来确保路径绝对正确,比如把引用改成::r $(ProjectDir)\ErrorMessageLookup.sql;$(ProjectDir)会自动指向你的数据库项目根目录,不管输出路径怎么改都不会出错。如果脚本在子文件夹里,就写成$(ProjectDir)\Scripts\ErrorMessageLookup.sql这样的形式。彻底清理项目缓存后重新生成
VS数据库项目的缓存有时候会抽风,导致路径解析异常。你可以:- 点击菜单「项目→清理」
- 手动删除项目目录下的
bin和obj文件夹 - 重新生成整个项目
这一步经常能解决很多莫名其妙的构建错误。
确保被引用脚本复制到输出目录
右键被引用的.sql文件→属性,把「复制到输出目录」改成「如果较新则复制」或者「始终复制」。这样在构建时,这些文件会被同步到输出目录,PostDeploy脚本执行时就能找到它们了。检查脚本的编码格式
有时候脚本是UTF-8带BOM的编码,或者有特殊字符,会导致VS解析:r命令出错。你可以用记事本打开PostDeploy脚本,选择「另存为」,把编码改成ANSI,然后再试试构建。
内容的提问来源于stack exchange,提问作者JumboMaximus
相关产品推荐
相关产品推荐

