สำหรับ VS2015 และ VS2017
ทำงานร่วมกับ TFS (on-prem) หรือ VSO (Visual Studio Online - ข้อเสนอ Azure-โฮสต์)
เอกสาร NuGet ให้คำแนะนำเกี่ยวกับวิธีการทำสิ่งนี้ให้สำเร็จและฉันเพิ่งติดตามพวกเขาสำเร็จสำหรับ Visual Studio 2015 และ Visual Studio 2017 เทียบกับ VSTS (TFS ที่โฮสต์โดย Azure) ทุกอย่างได้รับการอัปเดตอย่างเต็มที่ตั้งแต่เดือนพฤศจิกายน 2559ส.ค. 2561
ฉันแนะนำให้คุณทำตามคำแนะนำของ NuGet แต่เพียงเพื่อสรุปสิ่งที่ฉันทำ:
- ตรวจสอบให้แน่ใจว่า
packages
โฟลเดอร์ของคุณไม่ได้มุ่งมั่นที่จะ TFS ถ้าเป็นเช่นนั้นให้รีบออกไปจากที่นั่น
- ทุกอย่างที่เราสร้างด้านล่างจะเข้าไปในโฟลเดอร์เดียวกับที่
.sln
ไฟล์ของคุณมีอยู่เว้นแต่จะระบุไว้เป็นอย่างอื่น (คำแนะนำของ NuGet ยังไม่ชัดเจนในเรื่องนี้)
- สร้าง
.nuget
โฟลเดอร์ คุณสามารถใช้ Windows Explorer เพื่อตั้งชื่อ.nuget.
ให้บันทึกได้สำเร็จ.nuget
(จะลบช่วงเวลาสุดท้ายโดยอัตโนมัติ) แต่การพยายามตั้งชื่อโดยตรง.nuget
อาจไม่ทำงาน (คุณอาจได้รับข้อผิดพลาดหรืออาจเปลี่ยนชื่อขึ้นอยู่กับรุ่นของ Windows ) หรือตั้งชื่อไดเรกทอรี nuget แล้วเปิดไดเรกทอรีหลักในบรรทัดรับคำสั่ง ชนิด ren nuget .nuget
- ภายในโฟลเดอร์นั้นให้สร้าง
NuGet.config
ไฟล์และเพิ่มเนื้อหาต่อไปนี้แล้วบันทึก:
NuGet.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
- ย้อนกลับไปใน
.sln
โฟลเดอร์ของคุณแล้วสร้างไฟล์ข้อความใหม่และตั้งชื่อไฟล์.tfignore
(หากใช้ Windows Explorer ให้ใช้เคล็ดลับเดียวกับด้านบนและตั้งชื่อ.tfignore.
)
- ใส่เนื้อหาต่อไปนี้ลงในไฟล์:
.tfignore:
# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's
# not in the same folder as .tfignore.
packages
# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets
- บันทึกทั้งหมดนี้ส่งไปที่ TFS จากนั้นปิด & เปิด Visual Studio อีกครั้งและ Team Explorer ไม่ควรระบุโฟลเดอร์แพ็คเกจเป็นอีกต่อไปขณะเช็คอิน
- คัดลอก / วางผ่าน Windows Explorer
.tfignore
ไฟล์และ.nuget
โฟลเดอร์ไปยังโซลูชันต่างๆทั้งหมดของฉันและยืนยันพวกเขาและฉันไม่มีpackages
โฟลเดอร์ที่พยายามแอบเข้าไปในแหล่งควบคุม repo ของฉันอีกต่อไป!
การปรับแต่งเพิ่มเติม
ในขณะที่ไม่ใช่ของฉันฉันได้พบแม่แบบนี้.tfignore
โดย sirkirbyเพื่อประโยชน์ ตัวอย่างในคำตอบของฉันครอบคลุมpackages
โฟลเดอร์Nuget แต่แม่แบบนี้รวมถึงสิ่งอื่น ๆ รวมถึงให้ตัวอย่างเพิ่มเติมที่อาจมีประโยชน์หากคุณต้องการปรับแต่งเพิ่มเติม