Kami memiliki Aplikasi Web ASP.NET MVC 3 lama, yang dibangun di VS2010, yang gagal untuk dikompilasi, sejak pembaruan keamanan minggu lalu.
Masalahnya adalah bahwa referensi ke System.Web.Mvc.dll rusak.
Ketika saya membuka file solusi pada mesin build kami, di mana pembaruan keamanan belum berjalan, dan membuka dialog properti untuk Referensi-> System.Web.MVC, sepertinya baik-baik saja.
Jalurnya adalah C: \ Program Files \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll Versi 3.0.0.0
Tetapi ketika saya membuka file solusi pada mesin dev tempat pembaruan keamanan telah berjalan, Referensi-> System.Web.MVC ditandai sebagai hilang. Jika saya menghapusnya, dan mencoba menambahkannya kembali menggunakan dialog Tambahkan Referensi VS2010, itu tidak muncul.
Berkeliaran di web telah membawa saya pada saran yang melibatkan pembaruan MVC menggunakan NuGet. Kami tidak menggunakan NuGet, dalam proyek VS2010 kami, jadi tampaknya kurang tepat, untuk situasi ini. Saya tetap mencobanya, dan berakhir dengan setengah lusin referensi yang hilang.
Ketika saya melihat properti untuk "C: \ Program Files \ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll" di Windows Explorer, pada mesin build saya melihat versi 3.0.0.0.
Ketika saya melihat properti pada mesin dev, saya melihat versi 3.0.50813.1.
Yang saya perlukan adalah cara untuk mengubah cara saya membangun dan menjalankan sehingga saya dapat membangun dan menjalankan terlepas dari mana dari dua DLL ini yang diinstal dalam kerangka .NET 3.0.
Ide ide?
Apa yang telah saya coba ternyata tidak berhasil
Upaya pertama - jika rakitan hilang, tambahkan. Saya menghapus referensi lama yang hilang. Kemudian saya menyalin DLL dari folder "ASP.NET MVC3 \ Assemblies", ke dalam folder di proyek saya. Setel sebagai "Salin Selalu", dan tambahkan sebagai referensi.
Dengan itu, proyek akan dikompilasi di VS2010, tetapi ketika saya mencoba untuk mengkompilasi halaman dengan aspnet_compiler, saya mendapat peringatan:
(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
Sejauh ini, saya dapat menghindari pemahaman kebijakan runtime, tetapi saya mencoba menambahkan ini, di 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>
Mencoba lagi, dan mendapat peringatan yang sama.
Pertanyaan saya adalah - apakah saya masih punya masalah? Atau akankah saya menyelesaikannya, terlepas dari peringatannya?
