เรามีแอปพลิเคชันเว็บ ASP.NET MVC 3 รุ่นเก่าซึ่งสร้างใน VS2010 ซึ่งไม่สามารถรวบรวมได้ตั้งแต่การอัปเดตความปลอดภัยเมื่อสัปดาห์ที่แล้ว
ปัญหาคือการอ้างอิงไปยัง System.Web.Mvc.dll ใช้งานไม่ได้
เมื่อฉันเปิดไฟล์โซลูชันบนเครื่องบิลด์ของเราโดยที่การอัปเดตความปลอดภัยยังไม่ทำงานและเปิดกล่องโต้ตอบคุณสมบัติสำหรับการอ้างอิง -> System.Web.MVC ก็ดูดี
เส้นทางคือ C: \ Program Files \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll เวอร์ชัน 3.0.0.0
แต่เมื่อฉันเปิดไฟล์โซลูชันบนเครื่อง dev ที่รันการอัปเดตความปลอดภัยการอ้างอิง -> System.Web.MVC ถูกตั้งค่าสถานะว่าหายไป หากฉันลบออกและพยายามเพิ่มกลับโดยใช้กล่องโต้ตอบเพิ่มการอ้างอิงของ VS2010 มันจะไม่ปรากฏขึ้น
การเดินท่องเว็บทำให้ฉันได้รับคำแนะนำเกี่ยวกับการอัปเดต MVC โดยใช้ NuGet เราไม่ได้ใช้ NuGet ในโครงการ VS2010 ของเราดังนั้นมันจึงดูไม่ถูกต้องนักสำหรับสถานการณ์นี้ ฉันลองแล้วและจบลงด้วยการอ้างอิงที่ขาดหายไปครึ่งโหล
เมื่อฉันดูคุณสมบัติของ "C: \ Program Files \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll" ใน Windows Explorer บนเครื่องสร้างฉันเห็นเวอร์ชัน 3.0.0.0
เมื่อฉันดูคุณสมบัติบนเครื่อง dev ฉันเห็นเวอร์ชัน 3.0.50813.1
สิ่งที่ฉันต้องการคือวิธีเปลี่ยนวิธีสร้างและเรียกใช้เพื่อให้ฉันสามารถสร้างและเรียกใช้ไม่ว่าจะติดตั้ง DLL สองตัวนี้ในกรอบ.
ไอเดีย?
สิ่งที่ฉันพยายามแล้วไม่ได้ผล
ความพยายามครั้งแรก - หากชุดประกอบขาดหายไปให้เพิ่ม ฉันลบข้อมูลอ้างอิงเก่าที่หายไป จากนั้นฉันคัดลอก DLL จากโฟลเดอร์ "ASP.NET MVC3 \ Assemblies" ลงในโฟลเดอร์ในโครงการของฉัน ตั้งเป็น "คัดลอกเสมอ" และเพิ่มเป็นข้อมูลอ้างอิง
ด้วยเหตุนี้โครงการจะคอมไพล์ใน VS2010 แต่เมื่อฉันพยายามคอมไพล์หน้าเว็บด้วย aspnet_compiler ฉันได้รับคำเตือน:
(0): warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy
จนถึงตอนนี้ฉันสามารถจัดการเพื่อหลีกเลี่ยงการทำความเข้าใจนโยบายรันไทม์ได้ แต่ฉันพยายามเพิ่มสิ่งนี้ใน web.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
ลองอีกครั้งและได้รับคำเตือนเหมือนกัน
คำถามของฉันคือ - ฉันยังคงมีปัญหาอยู่หรือไม่? หรือฉันจะแก้ไขได้แม้จะมีคำเตือน?