.Net เลือกเวอร์ชั่นแอสเซมบลีที่อ้างอิงผิด


141

ฉันเพิ่งคัดลอกโครงการที่มีอยู่ไปยังเครื่องใหม่เอี่ยมเพื่อเริ่มพัฒนาและพบปัญหากับรุ่นหนึ่งของแอสเซมบลีที่อ้างอิงของฉัน (telerik DLL ตามที่เกิดขึ้น)

โครงการเดิมอ้างถึงแอสเซมบลีเวอร์ชันเก่ากว่า (ให้เรียกมันว่า v1.0.0.0) เครื่องใหม่ของฉันมีการติดตั้งแอสเซมบลีเวอร์ชันล่าสุดดังนั้นฉันคิดว่าฉันจะอัปเดต (ให้เรียก v2.0.0.0 เวอร์ชั่นใหม่)

ตอนนี้นี่คือปัญหา: ถ้าฉันคัดลอก v1.0.0.0 dll เก่าไปยังโฟลเดอร์โครงการและเพิ่มเป็นข้อมูลอ้างอิงเว็บไซต์เปิดตัวโดยไม่มีปัญหา ถ้าฉันลบการอ้างอิงนั้น (และลบ DLL เก่าออกจากระบบของฉัน) และเพิ่มเวอร์ชันใหม่ (v2.0.0.0) หน้าจะแสดงข้อยกเว้นดังต่อไปนี้:

ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'XXXXXX, เวอร์ชัน = 1.0.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 121fae78165ba3d4' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ข้อยกเว้นจาก HRESULT: 0x80131040)

เห็นได้ชัดว่ารหัสกำลังมองหารุ่นที่ล้าสมัยและไม่สามารถหาได้ แต่ทำไม

ฉัน greped โฟลเดอร์โซลูชันสำหรับหมายเลขเวอร์ชันนั้นและไม่พบการอ้างอิงเดียว ฉันตรวจสอบข้อความของไฟล์. csproj อีกครั้งและพบว่าเวอร์ชันแสดงเวอร์ชั่นล่าสุดอย่างถูกต้องและ HintPath แสดงพา ธ ไปยัง DLL ใหม่อย่างถูกต้อง นอกจากนี้เนื่องจากฉันไม่ได้ติดตั้ง DLL เก่าบนระบบจึงไม่ปรากฏใน GAC ของฉัน (แม้ว่า v2.0.0.0 จะเป็นไปตามที่คาดไว้)

จากนั้นฉันเปิดใช้งานตัวแสดงบันทึกการฟิวชั่นเพื่อพยายามหาสาเหตุว่าทำไมจึงมองหาเวอร์ชันเก่า แต่ไม่มีโชค:

Assembly Load Trace: The following information can be helpful to determine why the assembly 'XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4' could not be loaded.


=== Pre-bind state information ===
LOG: User = MyComp\me
LOG: DisplayName = XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4
 (Fully-specified)
LOG: Appbase = file:///d:/My Documents/Visual Studio 2010/Projects/CoolProj/WebApp/
LOG: Initial PrivatePath = d:\My Documents\Visual Studio 2010\Projects\CoolProj\WebApp\bin
Calling assembly : WebApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: d:\My Documents\Visual Studio 2010\Projects\CoolProj\WebApp\web.config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/90233b18/10d54998/XXXXXX.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/90233b18/10d54998/XXXXXX/XXXXXX.DLL.
LOG: Attempting download of new URL file:///d:/My Documents/Visual Studio 2010/Projects/CoolProj/WebApp/bin/XXXXXX.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Major Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

ทั้งหมดมันบอกว่ามันเริ่มต้นด้วยการมองหาชุดเก่าที่ ฉันได้พยายามหาวิธีแก้ปัญหาออนไลน์และเห็นคำถาม SO ที่คล้ายกันนี้แต่ดูเหมือนจะตรงข้ามกับปัญหาของฉัน โปรแกรมของผู้ถามนั้นกำลังค้นหา DLL ที่ผิดแทนที่จะเป็นที่อ้างอิง ในขณะที่ปัญหาของฉันคือโปรแกรมกำลังค้นหา DLL ที่ไม่ถูกต้องอย่างลึกลับและไม่สามารถค้นหาได้เมื่อสามารถหาที่ถูกต้องภายในโฟลเดอร์ bin และใน GAC

ทำไมฉันถึงมองหาเวอร์ชั่นเก่า? ฉันสามารถค้นหาการอ้างอิงที่ไม่ดีนี้ได้ที่ไหน

คำตอบ:


151

ฉันเดาว่าอีกชุดที่คุณใช้คือการอ้างอิง dll เก่า คุณคุ้นเคยกับการอ้างอิงโครงการอื่น ๆ ทั้งหมดที่ใช้อยู่และมีการอ้างอิงถึง Telerik dll หรือไม่?

คุณสามารถใส่การเปลี่ยนเส้นทางการผูกไว้ในไฟล์ web.config ของคุณได้ไหม?

<dependentAssembly>
 <assemblyIdentity name="Telerik" publicKeyToken="121fae78165ba3d4"/>
 <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>

12
ฉันมีปัญหาทุกประเภทคล้ายกับรุ่นที่แตกต่างกันในการโหลด / ไม่โหลด เคล็ดลับอีกอย่างที่คุณสามารถลองได้คือลบไฟล์ทั้งหมดใน C: /WINDOWS/Microsoft.NET/Framework/v4.0.30319/ ไฟล์ ASP.NET ชั่วคราว / root / 90233b18 / 10d54998 โฟลเดอร์ บางครั้งเมื่อทำการคอมไพล์เว็บไซต์ใหม่ ASP.Net ไม่ได้ล้างโฟลเดอร์นั้นออกเพราะล็อคไฟล์บางไฟล์และ dll เหล่านั้นอาจถูกแขวนไว้กับแหล่งอ้างอิงเก่า มันคุ้มค่ากับการยิงฉันรู้ว่ามันได้ผลกับฉันในอดีต
Chris Conway

1
คุณแก้ไขปัญหาที่เกี่ยวข้องให้ฉัน - ขอบคุณ! แบบฟอร์มที่สืบทอดในแอปพลิเคชัน C # ของฉันจะไม่เปิดในตัวออกแบบเนื่องจากกำลังมองหาข้อมูลอ้างอิงรุ่นเก่า ปรากฎว่ามีการสร้างการอ้างอิงอื่นขึ้นในขณะที่อ้างอิงการอ้างอิงปัญหานั้นในเวอร์ชันเก่า
Sam Skuce

2
หากคุณกำลังหลงทางเกี่ยวกับไวยากรณ์: msdn.microsoft.com/en-us/library/0ash1ksb.aspx
Junior Mayhé

1
ขอบคุณคริส! คุณแก้ไขปัญหาของฉันได้ที่นี่: stackoverflow.com/q/11490177/7850
Shaul Behr

3
คุณยังสามารถดูใน App.config หรือ web.config ของคุณและดูว่า<dependentAssembly>รายการที่มีอยู่ เป็นสาเหตุของปัญหาหรือไม่
Roy Tinker

24

ฉันอยู่กับคริสคอนเวย์กับอันนี้ (ยกให้เขา) ปัญหาคือคุณกำลังอ้างถึงชุดประกอบ Telerik หนึ่งในโครงการของคุณซึ่งอ้างอิงอีกชุดหนึ่งที่ไม่มีอยู่

สิ่งแรก: ฉันจะไม่ติดตั้งชุดประกอบใด ๆ (เช่น: telerik) ลงใน GAC สิ่งที่ Telerik รวบรวมได้เพียงสองชุดเท่านั้น (telerik.web.design และ telerik.web.ui) เพียงปรับใช้สิ่งเหล่านั้นด้วยแอปพลิเคชัน

ประการที่สองในแต่ละไฟล์. proj ของคุณ (เช่น. csproj) จะมีไฟล์<reference include..>ใดที่ชี้ไปยังไฟล์ Telerik.Web.UI โดยปกติจะมีหมายเลขเวอร์ชัน ตรวจสอบให้แน่ใจว่าชุดประกอบที่คุณใส่ในโฟลเดอร์ช่องเก็บตรงกับรุ่นนั้น

สามตรวจสอบให้แน่ใจว่าโครงการทั้งหมดของคุณใช้แอสเซมบลีล่าสุด ตรวจสอบให้แน่ใจว่าพวกเขากำลังรวบรวมชุดประกอบจากเส้นทางในพื้นที่แทนที่จะเป็น GAC (ฉันไม่ชอบ GAC จริง ๆ มันทำให้ไม่มีปัญหาในบางโครงการที่ฉันทำไป) โดยทั่วไปเรามีโฟลเดอร์ "ชุดประกอบ" ที่โครงการทั้งหมดใช้สำหรับการอ้างอิงชุดประกอบภายนอก

ประการที่สี่ visual studio ค้นหา gac ของคุณโดยอัตโนมัติทุกครั้งที่มีการโหลดเว็บไซต์โครงการและกำหนดตำแหน่งแอสเซมบลีซ้ำหากพบบางสิ่งใน gac ฉันจำไม่ได้ว่าจะทำเช่นนี้สำหรับโครงการแอปพลิเคชันเว็บหรือไม่ แต่ฉันไม่ได้มีปัญหากับโครงการเหล่านี้ สิ่งนี้อาจทำให้เกิดปัญหาที่คล้ายกันระหว่างการปรับใช้

ประการที่ห้าคุณสามารถเชื่อมหมายเลขเวอร์ชันสำหรับแอสเซมบลีใน web.config ในruntime/assemblybindingส่วนคุณสามารถใช้สิ่งต่อไปนี้ซึ่งจะนำชุดประกอบ Telerik ทุกชุดที่นำไปใช้ในปี 2551 ไปข้างหน้าและชี้ไปที่รุ่นที่เฉพาะเจาะจงมาก:

  <dependentAssembly>
    <assemblyIdentity name="Telerik.Web.UI" publicKeyToken="121fae78165ba3d4" />
    <bindingRedirect oldVersion="2008.0.0.0-2020.0.0.0" newVersion="2010.02.0713.35" />
  </dependentAssembly>

2
ฉันหมายถึง "ความรู้สึก" มันทำให้ฉันรำคาญมาหลายเดือนแล้ว :)
Michael La Voie

21

ฉันลองคำตอบส่วนใหญ่ แต่ก็ยังใช้งานไม่ได้ สิ่งนี้ใช้ได้กับฉัน:

คลิกขวาที่การอ้างอิง -> คุณสมบัติ -> เปลี่ยน 'เวอร์ชันที่เฉพาะเจาะจง' เป็นเท็จ

ป้อนคำอธิบายรูปภาพที่นี่

หวังว่าสิ่งนี้จะช่วย


30
นั่นคือสิ่งที่การลงคะแนน +1 หมายถึง
xr280xr

7
แต่บางครั้ง upvote ง่าย ๆ ก็ไม่สามารถสรุปได้อย่างเพียงพอว่าคำตอบมีความสุขและสบายใจได้อย่างไร - หลังจากใช้เวลาหลายชั่วโมงในการพยายามแก้ไขปัญหาที่เป็นใบ้ซึ่งไม่น่าจะเป็นปัญหาและคุณลองใช้วิธีอื่น เจอคำตอบที่แตกต่างไปจากที่คุณเคยลองมาก่อน มันใช้งานได้แล้ว! หลังจากนั้นบางครั้งเพียงแค่กดปุ่ม upvote ก็ไม่ได้ยุติธรรมกับความรู้สึกที่ท่วมท้นของเพื่อนคุณทำให้ฉันออกจากที่นี้
Michael Plautz

7

ลอง:

  • การทำความสะอาดไฟล์โครงการชั่วคราว
  • การทำความสะอาดไฟล์ build และ obj
  • ล้างการติดตั้งเวอร์ชันเก่าที่ C:\Users\USERNAME\.nuget\packages\

ที่ทำงานให้ฉัน


1
การล้างไดเรกทอรี C: \ Users \ USERNAME \ .nuget \ packages \ เป็นสิ่งที่ฉันขาดหายไป ขอบคุณมาก!
Herdo

สำหรับรุ่น nuget รุ่นเก่าที่สะอาด, ในคอมพิวเตอร์ที่ใช้ windows, ckuck เริ่มต้นและค้นหา "run"> คัดลอกและวาง "% userprofile% \. nuget \ packages" - จะเป็นการเปิดโฟลเดอร์รุ่น
nuget

3
  1. ไปที่ C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG
  2. ค้นหาไฟล์ machine.config
  3. เปิดในแผ่นจดบันทึก
  4. ค้นหา dll ที่ขัดแย้ง
  5. ลบสิ่งนี้และบันทึก

แอสเซมบลีการรวบรวม

addassembly = dllName, รุ่น = 1.0.0000.0000 วัฒนธรรม = เป็นกลาง, PublicKeyToken = "QWEWQERWETERY"

รวบรวมการชุมนุม

ทำงานได้สำหรับฉัน


2
ฉันยังค้นพบฝันร้ายนี้ - แม้ว่าคุณจะลบแอสเซมบลีออกจาก GAC มันทำให้การอ้างอิงรุ่นผิดใน "C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config"
Evalds Urtans

3

นี่ไม่ใช่คำตอบที่ชัดเจนว่าทำไม แต่เรามีปัญหานี้นี่คือสถานการณ์ของเราและสิ่งที่แก้ไขได้:

Dev 1:

โซลูชันประกอบด้วยโครงการ A ที่อ้างอิงแพ็คเกจ NuGet และโครงการ MVC อ้างอิงโครงการ A. เปิดใช้งานแพคเกจ NuGet คืนค่าจากนั้นอัปเดตแพ็คเกจ NuGet มีข้อผิดพลาดรันไทม์ที่บ่น NuGet lib ไม่พบ - แต่ข้อผิดพลาดคือมองหารุ่นเก่ากว่าที่ไม่ได้ปรับปรุง วิธีแก้ไข (และนี่เป็นเรื่องไร้สาระ): ตั้งค่าเบรกพอยต์ในบรรทัดแรกของรหัสในโครงการ MVC ที่เรียกโครงการ A ขั้นตอนในด้วย F11 แก้ไขแล้ว - ไม่เคยมีปัญหาอีก

Dev 2:

วิธีการแก้ปัญหาและโครงการเดียวกัน แต่จุดหยุดตั้งเวทมนตร์และขั้นตอนในการแก้ปัญหาไม่ทำงาน ดูทุกที่สำหรับการเปลี่ยนเส้นทางเวอร์ชั่นหรือการอ้างอิงที่ไม่ดีอื่น ๆ กับแพ็คเกจ Nuget นี้แพ็คเกจที่ลบออกและติดตั้งใหม่ถังขยะเช็ด obj, Asp.Net Temp ไม่มีอะไรแก้ไขได้ ในที่สุดเปลี่ยนชื่อโครงการ A, รันโครงการ MVC - แก้ไข เปลี่ยนชื่อกลับเป็นชื่อเดิมมันยังคงอยู่

ฉันไม่มีคำอธิบายใด ๆ เกี่ยวกับสาเหตุที่ใช้งานได้ แต่มันทำให้เราพ้นจากการฉุนเฉียวอย่างรุนแรง


2

คุณมีโครงการอื่น ๆ ในการแก้ปัญหานั้นหรือไม่ (อาจเป็นอีกโครงการที่อ้างอิงรุ่นเก่า) โดยปกติแล้วใน VS การพึ่งพา dll จะครอบคลุมโครงการทั้งหมดในการแก้ปัญหา


ไม่มีโครงการอื่น ๆ ในการแก้ปัญหาและไม่มี DLLs อ้างอิงอื่น ๆ ที่อ้างอิง telerik ฉันอ้างถึง MS DLLs ala System เท่านั้น *
Michael La Voie

2

ปัญหาของฉันคือแอสเซมบลีเก่าอยู่ในโฟลเดอร์ _bin_deployableAssemblies ภายใต้แอปพลิเคชันเว็บ นี่หมายถึงแอสเซมบลีเก่าถูกเขียนทับแอสเซมบลี GAC เมื่อสร้างโครงการ


2

ในกรณีที่มีการบันทึกคนอื่น 3 ชั่วโมง ... กรณีของฉันแตกต่างกันเล็กน้อย รหัสของฉันใช้ DevExpress v11.1 v11.1.4.0 ฉันมีทุกอย่างอ้างอิงอย่างถูกต้องในรหัสของฉัน แต่ตัวติดตั้งหน่วยความจำ. net ได้ติดตั้ง DevExpress v11.1 v11.1.12.0 ใน GAC ในความเป็นจริงมันไม่ได้เป็นส่วนประกอบที่ฉันอ้างอิง แต่ส่วนประกอบที่พวกเขาอ้างถึงภายในนั้นล้มเหลว ลองเท่าที่ฉันจะทำได้ GAC จะถูกตรวจสอบก่อนเสมอ มันรวบรวมและวิ่งได้ดี แต่ฉันไม่สามารถดูผู้ออกแบบฟอร์มชนะและการติดตามสแต็กก็ไม่ได้ช่วยอะไรเลย ในที่สุดถอนการติดตั้ง. profiler หน่วยความจำสุทธิและทั้งหมดถูกกู้คืน


2

ฉันมีปัญหาที่คล้ายกันและฉันต้องลบทุกอย่างออกจากโฟลเดอร์ bin และ obj และสร้างใหม่เพื่อแก้ไขปัญหาของฉัน หวังว่านี่จะช่วยได้


1

หากคุณประสบปัญหานี้เมื่อทำการทดสอบและ / หรือการดีบักแอปพลิเคชันจากสภาพแวดล้อม Visual Studio (ASP.NET Development Server) คุณจำเป็นต้องลบไฟล์ชั่วคราวทั้งหมดในโฟลเดอร์เว็บไซต์พัฒนา หากต้องการทราบว่าโฟลเดอร์นั้นอยู่ที่ไหนให้มองหาไอคอนเซิร์ฟเวอร์การพัฒนา ASP.NET บนไอคอนถาด Windows (ควรมีชื่อดังนี้: เซิร์ฟเวอร์การพัฒนา ASP.NET - พอร์ต ####) คลิกขวาที่ไอคอนและเลือกแสดง รายละเอียด; แล้วฟิลด์ฟิสิคัลพา ธ จะบอกคุณว่าโฟลเดอร์ชั่วคราวคืออะไรรายการทั้งหมดที่มีควรถูกลบเพื่อแก้ไขปัญหา สร้างและเรียกใช้เว็บไซต์อีกครั้งและปัญหาควรได้รับการแก้ไข (แก้ไขอีกครั้งสำหรับสภาพแวดล้อมการพัฒนา)


1

ฉันมีปัญหาเดียวกันกับแอสเซมบลีที่แตกต่างกันอ้างอิงรุ่นที่แตกต่างกันของ Newtonsoft.json วิธีแก้ปัญหาที่ใช้งานได้สำหรับฉันคือการเรียกใช้แพคเกจอัปเดตจาก Nuget Package Manager Console


1

ข้อผิดพลาดนี้ค่อนข้างทำให้เข้าใจผิด - ฉันกำลังโหลด DLLs บางตัวที่ต้องระบุสถาปัตยกรรม x64 ใน.csprojไฟล์:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release-ABC|AnyCPU'">
    <OutputPath>bin\Release-ABC</OutputPath>
    <PlatformTarget>x64</PlatformTarget>
</PropertyGroup>

การขาดหายไปPlatformTargetทำให้เกิดข้อผิดพลาดนี้


1

ฉันได้รับ:

ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'XXX-new-3.3.0.0' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ข้อยกเว้นจาก HRESULT: 0x80131040)

มันเป็นเพราะผมเปลี่ยนชื่อของการชุมนุมจากการXXX.dll XXX-new-3.3.0.0.dllการเปลี่ยนชื่อกลับไปเป็นต้นฉบับแก้ไขข้อผิดพลาด


ใช่ - รวมเวอร์ชันในชื่อในไลบรารีชุดประกอบทั่วไปของเราเพื่อหลีกเลี่ยงปัญหาการตั้งชื่อในการควบคุมแหล่งที่มา เปลี่ยนชื่อกลับและอัปเดตเส้นทางอ้างอิง / คำใบ้ด้วยตนเองและใช้งานได้ทั้งหมด
Mathew Paxinos

0

มันเกือบจะเหมือนคุณต้องล้างคอมพิวเตอร์ของคุณเพื่อกำจัด dll เก่า ฉันลองทุกอย่างด้านบนแล้วจากนั้นฉันก็ก้าวไปอีกขั้นของการลบไฟล์. DLL ที่อยู่ในคอมพิวเตอร์ของฉันและลบการอ้างอิงทุกอย่างออกจากแอปพลิเคชัน อย่างไรก็ตามมันก็ยังคงคอมไพล์ได้ดีและเมื่อมันรันก็เป็นการอ้างอิงฟังก์ชั่น dll ได้ดี ฉันเริ่มสงสัยว่ามันอ้างอิงจากไดรฟ์เครือข่ายบ้างไหม


0

ฉันมีข้อความเดียวกันเมื่อสลับระหว่างแอปพลิเคชั่นสองเวอร์ชันที่อ้างอิง DLL รุ่นเดียวกันต่างกัน แม้ว่าฉันจะทำการทดสอบในโฟลเดอร์ต่าง ๆ แต่ฉันก็คัดลอกเวอร์ชั่นใหม่กว่าเวอร์ชั่นเก่าโดยไม่ได้ตั้งใจ

ดังนั้นสิ่งแรกที่ต้องตรวจสอบคือเวอร์ชันของ DLL ที่อ้างอิงในโฟลเดอร์ของแอปพลิเคชัน ในกรณีที่


0

อาจจะช่วยได้หรือไม่ ฉันล้าง debug และรุ่นที่วางจำหน่ายจากนั้นฉันเปลี่ยนชื่อโฟลเดอร์ OBJ ในที่สุดนี้ฉันก็ได้ผ่านไปแล้ว ขั้นตอนก่อนหน้านี้โดยทั่วไปโครงการจะลบการอ้างอิงและพวกเขาเพิ่มพวกเขากลับมาที่คุณสมบัติของโครงการ


0

ใน My Visual Studio 2015 ฉันมั่นใจว่ารายการเส้นทางอ้างอิงของ Visual Studio ที่ละเมิดนั้นว่างเปล่า:

ป้อนคำอธิบายรูปภาพที่นี่


คุณโพสต์คำตอบเดียวกันกับคำถาม 2 ข้อแตกต่างกันอย่างไร
AK47

0

นี่คือสิ่งที่ได้ผลสำหรับฉัน:

ฉันใช้Microsoft.IdentityModel.Clients.ActiveDirectoryเวอร์ชัน 3.19 ในโครงการไลบรารีคลาส แต่มีรุ่น 2.22 เท่านั้นที่ติดตั้งในโครงการ ASP.NET Web Application จริง การอัพเกรดเป็น 3.19 ในโปรเจ็กต์ของเว็บแอป


0

ในกรณีของฉันฉันมี 3 โครงการ 1 โครงการหลักและ 2 โครงการย่อยที่อ้างอิงโดยโครงการหลักดังนั้นฉันจึงอัปเดตโครงการหลักโดยไม่ละโครงการย่อย นั่นคือสิ่งที่เกิดความขัดแย้ง หลังจากฉันอัปเดตทุกโปรเจคของฉันทุกอย่างทำงานได้ดี


0

ใน VS2017 ได้ลองใช้วิธีแก้ไขทั้งหมดข้างต้นแล้ว แต่ก็ไม่มีอะไรทำงาน เราใช้ Azure devops สำหรับการกำหนดเวอร์ชัน

  1. จากทีมนักสำรวจ> Explorer การควบคุมแหล่งที่มา

ป้อนคำอธิบายรูปภาพที่นี่

  1. เลือกโปรเจ็กต์ที่ทำให้คุณหลงใหลในถั่วเป็นเวลานาน

  2. คลิกขวาที่สาขาหรือโซลูชัน> ขั้นสูง> รับเฉพาะรุ่น

ป้อนคำอธิบายรูปภาพที่นี่

  1. จากนั้นตรวจสอบให้แน่ใจว่าคุณได้ทำเครื่องหมายในช่องทำเครื่องหมายของไฟล์เขียนทับตามภาพหน้าจอ

ป้อนคำอธิบายรูปภาพที่นี่


0

ในกรณีของฉันฉันเลือกรุ่นที่ไม่ถูกต้องของแพคเกจ Telerik จาก nuget ซึ่ง nuget นั้นแทนที่ทุกแพ็คเกจที่ฉันอ้างอิงกับรุ่นที่ไม่ถูกต้อง จากนั้นแทรกการเปลี่ยนเส้นทางการเชื่อมโยงไปยังรุ่นที่ไม่ถูกต้องเพื่อให้แม้ว่าฉันจะแทนที่ทุกอย่างด้วยรุ่นที่ถูกต้องแล้วก็ตาม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.