덕분에 후속 코멘트, 당신이 작성하고 코드가 프로젝트에 따라 다른 dacpacs을 사용할 수 있도록 배포 할 때 당신은 무엇을하려고하는 것은 생각 ?
각 구현 팀은 다른 버전의 공유 dacpac을 배포 할 수 있으므로 공유 위치에 파일을 저장하고 dacpac "Product_Latest.dacpac"또는 다른 제품을 호출 할 수 없으므로 모든 사람이 항상 최신 버전을 가져옵니다.
".sqlproj"파일은 표준 msbuild 스크립트이며 참조는 msbuild 속성을 사용하여 관리 할 수 있으므로 런타임에 기술적으로 참조를 변경할 수 있습니다. 당신이 당신의 .sqlproj 파일을 편집하고 처음 <PropertyGroup>
태그에 속성을 추가 할 경우, 내가 사용 :
<ProdDacpacVersion Condition="'$(ProdDacpacVersion)' == ''">v1</ProdDacpacVersion>
V1이 버전 폴더에 대한 고유 한 이름 - 당신은 당신이 원하는 dacpac를 식별하기 위해 뭔가를해야합니다.
이 속성은 TargetDatabaseSet 및 IncludeCompositeObjects 바로 뒤에 있습니다.
당신은 그하여 dacpac 참조 대신
<ArtifactReference Include="..\..\..\..\..\Desktop\prod\v1\Database2.dacpac"> <HintPath>..\..\..\..\..\Desktop\prod\v1\Database2.dacpac</HintPath> <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors> </ArtifactReference>
를 사용하여 위의 재산을 찾을 경우
<ArtifactReference Include="..\..\..\..\..\Desktop\prod\$(ProdDacpacVersion)\Database2.dacpac"> <HintPath>..\..\..\..\..\Desktop\prod\$(ProdDacpacVersion)\Database2.dacpac</HintPath> <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors> </ArtifactReference>
그런 다음 참조가를 얻을 수있는 속성을 사용됩니다 dacpac의 경로입니다. 속성을 설정할 수있는 몇 가지 방법이 있습니다. 파일이나 환경 변수 또는 다른 속성에서 새 버전의 속성을 읽으려는 경우 .sqlproj 파일을 편집 할 수 있습니다 (msbuild 재미를 그대로 두겠습니다). . 그것은 오래 걸리지 않을 것이며, 그것은
당신이 dacpac 년대를 배포 : 저주를 많이 절약 할 수 -
나는, 표준으로, 매번 참조 프로젝트를 다시로드 또는 Visual Studio를 다시 시작하거나 변경 한 것 배포는 먼저 동일한 폴더에서 참조를 찾습니다. 따라서 배포 할 때 올바른 폴더를 bin 폴더에 복사하십시오.
dacpacs를 공유 위치 –
에 넣기 만하면됩니다. 프로젝트를 배포 할 때 항상 최신 dacpac을 배포하거나 구현 프로젝트를 빌드 할 때 일부 비트가있는 dacpac에 대해 빌드하려는 경우를 의미합니까? 누락 (이전 릴리스에서)? –
Dmitrij의 의견은 우리가하는 일과 거의 같습니다. 적절한 버전의 dacpac을 빌드하고 공유 위치에 두십시오. 필요에 따라 버전 관리를하고 모든 것이 제대로 작동하기 위해 어떤 빌드가 필요한지 메모하십시오.이상적으로 참조는 ".. \ .. \ .. \ Schema \ DB1.dacpac"또는 이와 유사한 어떤 공통 경로에 있어야하므로 모든 프로젝트에 관계없이 동일합니다. –