6

에서 작업을 구축하지의 차이 스크립트가 Visual Studio 2012 데이터베이스 프로젝트이고 배포 할 때 None이 스크립트를 컴파일하거나 포함하지 않는다는 것을 알고 있습니다. 아무도 확실하게 BuildCompile의 미묘함을 명확하게 정의하는 기사로 안내하거나 안내 할 수 있습니까?, "빌드", "컴파일"내가 SQL에 대한 <code>PreDeploy</code> 및 <code>PostDeploy</code><strong>빌드 작업</strong>에 대한 많은 정보 (웹</em>에 <em>를) 찾을 수 있지만 "없음"Visual Studio를 데이터베이스 프로젝트

내 생각은 대략 이고 그 중은 모두 스키마에 대해 컴파일되지만 Build 만 배포됩니다. 이 올바른지?

내가 원하는 것은 현재 스키마에 대한 시드 (시드) 스크립트의 유효성을 검사하고 유효하지 않은 스키마 구조에서 빌드 오류가 발생하는 올바른 설정이지만 데이터베이스를 게시하거나 스키마 비교 세션에 표시하지 않는 것입니다.

+0

BTW, 의 멋진 상세 답변 [This (http://stackoverflow.com/questions/145752/what-are-the-various-build-action-set-sudio-project-properties) 게시물이 데이터베이스 프로젝트의 컨텍스트에 있지 않습니다. – Dib

+0

글쎄, "배포"는 배포 후/배포 전 스크립트의 컨텍스트에서 하나만 가질 수 있습니다. 나머지는 해당 스크립트에 "포함"됩니다. 컴파일러가 파일을 테이블/뷰/다른 객체로 빌드하려고하기 때문에 이러한 파일을 "빌드"하도록 설정하지 않으려합니다. 나는 그 (것)들이 할 무슨 아이디어도 전에 컴파일하기 위하여 그 (것)들을 놓는 것을 시도하지 않았다. 나는 대개 그들을 "없음"으로 남겨두고 작성시 신중하게 확인하십시오. 오류를 잡는 데 도움이되도록 주위에 try/catch 논리를 작성할 수 있습니다. 당신이 그들을 포함하지 않으면 DB 게시와 함께 배포하지 않을 것입니다. –

답변

2

, "빌드는"SQL 파일에 사용하고 C# 또는 VB (즉, SQL의 CLR) 파일에 사용되는 "컴파일"입니다. 데이터베이스 프로젝트를 빌드 할 때 출력은 처리 된 "빌드"SQL 파일이 들어있는 dacpac 파일과 처리 된 "컴파일"C# 또는 VB 파일이 들어있는 .NET 어셈블리 (dll) 파일입니다.

"없음"으로 표시된 파일은 단순히 무시됩니다.