Sử dụng @ ứng dụng giao diện điều khiển tiện dụng Vance ở trên, tôi đã sử dụng sau đây là một sự kiện 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>
Điều này cực kỳ tiện lợi, vì tránh việc triển khai gây phiền nhiễu. Cảm ơn bạn đã chia sẻ Vance.
Tôi đã thêm TF.exe vào thư mục giải pháp Thư viện và điều này giúp, vì bây giờ tôi có thể xem các tệp edmx trước khi cố chỉnh sửa chúng, như một phần của bản dựng. Ngoài ra tôi đã thêm điều này với các điều kiện, do đó nó thiết lập đến năm 2005 để triển khai cho máy chủ và quay trở lại năm 2008 cho các cấu hình máy Sl. Cũng cần đề cập đến bạn cần thêm tệp SetEdmxSqlVersion.exe (và .pdb) thực tế vào thư mục Library (hoặc bất cứ nơi nào khác bạn muốn giữ các bit này).
Cảm ơn rất nhiều @Vance. Thật gọn gàng, đồ sộ tiết kiệm thời gian và giữ tôi builds hoàn toàn tự động và miễn phí đau :)
Tôi đã bỏ phiếu này do nhầm lẫn, nhưng không thể thực hiện được những gì tôi thực sự muốn làm mà bỏ phiếu cho nó! Cảm ơn bạn đã tìm sự cố. Nếu tôi hiểu chính xác, giá trị có thay đổi từ năm 2005 đến 2008 do cập nhật mô hình từ cơ sở dữ liệu, nơi cơ sở dữ liệu là một SQL 2008 DB không? Trong môi trường của tôi, máy phát triển của tôi có SQL 2008, nhưng môi trường thử nghiệm có 2005 (sản xuất nào cũng vậy). Cho đến khi chúng tôi di chuyển đến năm 2008, tôi có đúng là giả định rằng điều này sẽ tiếp tục xảy ra không? – jamiebarrow
Tôi thường đặt điều này vào năm 2005, đó là cơ sở dữ liệu sản xuất; Tôi đang sử dụng năm 2008 để phát triển. 2008 là tương thích ngược nên không có vấn đề gì. Ngoài ra, điều này sẽ được thay đổi trở lại sau khi cập nhật/tạo. Tôi luôn luôn xác nhận điều này khi kiểm tra trong EDMX sau khi trải nghiệm cay đắng. –
WOW, phát lại tuyệt vời, nhờ Rechard –