위의 @Vance의 편리한 콘솔 앱을 사용하여 다음을 BeforeBuild 이벤트로 사용했습니다.
<Target Name="BeforeBuild">
<!--Check out BD.edmx, Another.edmx, all configs-->
<Exec Command="$(SolutionDir)\Library\tf checkout /lock:none $(ProjectDir)Generation\DB.edmx" />
<Exec Command="$(SolutionDir)\Library\tf checkout /lock:none $(ProjectDir)Generation\Another.edmx" />
<!--Set to 2008 for Dev-->
<Exec Condition=" '$(Configuration)' == 'DEV1' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\DB.edmx 2008" />
<Exec Condition=" '$(Configuration)' == 'DEV1' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\Another.edmx 2008" />
<Exec Condition=" '$(Configuration)' == 'DEV2' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\DB.edmx 2008" />
<Exec Condition=" '$(Configuration)' == 'DEV2' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\Another.edmx 2008" />
<!--Set to 2005 for Deployments-->
<Exec Condition=" '$(Configuration)' == 'TEST' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\DB.edmx 2005" />
<Exec Condition=" '$(Configuration)' == 'TEST' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\Another.edmx 2005" />
<Exec Condition=" '$(Configuration)' == 'PRODUCTION' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\DB.edmx 2005" />
<Exec Condition=" '$(Configuration)' == 'PRODUCTION' " Command="$(SolutionDir)Library\SetEdmxSqlVersion $(ProjectDir)Generation\Another.edmx 2005" />
</Target>
성가신 재배포를 방지하므로 매우 편리합니다. Vance를 공유해 주셔서 감사합니다.
TF.exe를 Library 솔루션 폴더에 추가했는데 이제 빌드의 일부로 edmx 파일을 편집하기 전에 확인할 수 있으므로 도움이됩니다. 또한 이것을 조건과 함께 추가하여 서버에 배포하려면 2005로 설정하고 Dev 컴퓨터 sln 구성에 대해서는 2008로 다시 설정했습니다. 또한 실제 SetEdmxSqlVersion.exe (및 .pdb) 파일을 Library 폴더 (또는 이러한 비트를 유지하려는 다른 위치)에 추가해야합니다.
@Vance 대단히 감사합니다. 정말 깔끔하고 엄청난 시간을 절약하고 빌드를 완전히 자동화하고 고통없이 유지합니다. :)