การใช้แอปคอนโซลที่มีประโยชน์ของ @ 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 ลงในโฟลเดอร์โซลูชันไลบรารีและสิ่งนี้ช่วยได้เนื่องจากตอนนี้ฉันสามารถตรวจสอบไฟล์ edmx ก่อนที่จะพยายามแก้ไขซึ่งเป็นส่วนหนึ่งของการสร้าง นอกจากนี้ฉันได้เพิ่มสิ่งนี้พร้อมเงื่อนไขเพื่อให้ตั้งค่าเป็น 2005 สำหรับการปรับใช้กับเซิร์ฟเวอร์และกลับไปที่ 2008 สำหรับการกำหนดค่า sln ของเครื่อง Dev นอกจากนี้คุณต้องเพิ่มไฟล์ SetEdmxSqlVersion.exe (และ. pdb) ที่แท้จริงลงในโฟลเดอร์ Library (หรือที่ใดก็ตามที่คุณต้องการเก็บบิตเหล่านี้ไว้)
ขอบคุณมาก @Vance. เรียบร้อยประหยัดเวลามากและช่วยให้งานสร้างของฉันเป็นไปโดยอัตโนมัติและปราศจากความเจ็บปวด :)