6

行动虽然我能找到(网络上)一个有关SQL的PreDeployPostDeploy生成操作大量信息的差异我知道None在部署时没有编译或包含脚本,请任何一个人可以明确地建议或指导我一篇确切地定义BuildCompile的微妙之处的文章吗?之间的“生成”,“编译”和“无”生成在Visual Studio数据库项目

我粗略的假设是这些都会对编译的模式既,但只有Build将被部署。它是否正确?

我想要的是正确的设置,以针对当前模式验证我的种子脚本(并在无效的模式结构上导致生成错误),但不部署数据库发布或在模式比较会话中显示。

+0

顺便说一句,好的详细答案在 [this](http://stackoverflow.com/questions/145752/what-are-the-various-build-action-settings-in-visual-studio-project-properties )帖子不在数据库项目的上下文中。 – Dib

+0

那么,在部署后/预部署脚本中的“构建”只会让你拥有一个脚本。其余的是“包含”该脚本。您不想尝试将这些文件设置为“构建”,因为编译器会尝试将它们构建为表/视图/其他对象。我还没有尝试将它们设置为编译之前,所以不知道会做什么。我通常将它们留作“无”,并在写入时仔细检查。你可以在它们周围写一些try/catch逻辑来帮助捕捉错误。除非包含数据库,否则它们不会部署数据库发布。 –

回答

2

在数据库项目中, “生成” 是用于SQL文件和用于C#或VB(即SQL CLR)文件 “编译”。在构建数据库项目时,输出是一个包含已处理的“Build”sql文件的dacpac文件和一个包含已处理的“编译”C#或VB文件的.NET程序集(dll)文件。

标记为“无”的文件被忽略。

相关问题