2013-06-06 17 views
11

MVC 3'ten MVC 4'e bir projeyi bir süre önce taşındım. Ben oluştururkenvisual studio express 2012 app.config montajı yeniden eşleme

, ben

1> No way to resolve conflict between "System.Web.Mvc, Version=3.0.0.0 ..." and , Version=2.0.0.0 
1> Consider app.config remapping of assembly "System.Web.WebPages ..." from Version "1.0.0.0" to Version "2.0.0.0" to solve conflict and get rid of warning. 
1> Consider app.config remapping of assembly "System.Web.WebPages.Razorfrom Version "1.0.0.0" [c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Razor.dll] to Version "2.0.0.0" [C:\Users\OEM\documents\visual studio 2012\Projects\DabTrial\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll] to solve conflict and get rid of warning. 

ve benzeri mesajları alıyorum.

Başvurulara baktığımda, bunların hepsi sonraki sürümlerdir ve web.config yalnızca sonraki sürümleri ifade eder. Genel anahtar belirteci (Windows Gezgini) tarafından tüm çözüm dizini aradığımda, önceki sürümlere başvuruları olan bir XML tipi dosya bulamıyorum.

Açıkçası dosyaların yolu farklıdır, ancak derleyicinin önceki .dll dosyasının yoluna yönlendirildiği yeri bulamıyorum.

Proje iyi çalışıyor ve çalışıyor, ancak derleyicinin bu değişiklikleri bir nedenle önerdiğini farz ediyorum. Herhangi bir yardım için teşekkürler.

+0

herhangi kitaplıklar Nuget ile yüklemiş var mı? – DSlagle

+0

Evet, çoğul ve yapı kitaplıkları güncelleştirildikten sonra yapı iletileri oluştu. Ben nuget ile yeterince tanıdık değilim bu nasıl bulmak/düzeltmek için – Brent

+5

paket yöneticisi konsolunda update-package -reinstall çalıştırmayı deneyin. Bunu yapmak için nuget 2.1'in yüklü olması gerekir, ancak tüm 3. parti lib'lerini yeniden hedefleyecektir. Projemde, birkaç gün önce .net 4.5'e güncellendikten sonra bunu yaptım. Aynı türde bir hata mesajı veriyordum. Daha fazla bilgi için bu bağlantıya göz atın http://stackoverflow.com/questions/12006991/retargeting-solution-from-net-4-0-to-4-5-how-to-retarget-the-nuget-packages – DSlagle

cevap

12

Nuget bağımlılıklarınız muhtemelen MVC3 sürümüne başvuruyordur. Sen Nuget en az sürümünü 2.1 olması gerekir Package Manager Console

Update-Package -Reinstall 

aşağıdaki

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Ayrıca denemenizi olabilir: Sen MVC4 versiyonunu zorlamak için web config aşağıdaki koyarak deneyebilirsiniz Bu komut için paketlerinizi günceller ve .NET'i güncelleştirdiyseniz bunları yeniden hedefler. Daha fazla bilgi için bu gönderiyi kontrol edebilirsiniz.

Retargeting solution from .Net 4.0 to 4.5 - how to retarget the NuGet packages?

+0

Teşekkür ederiz Sen DSlagle - senden cevap vermeni istedim, böylece cevabı kabul edebildim. Bunun yakında çoğaltılacak şekilde işaretleneceğini tahmin ediyorum, ancak aramalarımın StackOverflow bağlantınızı nasıl bulamadığını görebiliyorum. – Brent

+0

sadece yan nottur, 'Güncelleme-Paket -Yükleme 'projenize göre uzun zaman alacaktır – mhesabi

+1

UYARI - Bu komutun kullanılması referanslarımın çoğunu geçersiz yaptı ve tekrar çözümü yeniden oluşturmak zorunda kaldım. – Dementic

0

Ben de böyle sorunları vardı. Sadece iki şey yaptı:

  • System.Web.Mvc ve son sürümü (5.2.3)
  • tüm bağımlılıklar tüm çözüm (I "Çözüm kullanarak vermedi yeniden güncellendi ->Temiz Çözüm "ardından" Çözüm ->Yapı Çözümü ")
İlgili konular