2011-03-03 6 views
5

.NET 3.5'i hedefleyen bir geliştirme projem var. Kurumsal büyük peruklar bizi 4.0 hedeflemeyecek diye bir seçeneğim yok. Visual Studio 2010'daki çözüme yeni bir Test Projesi ekledim. Görüyorum ki, 4.0 Framework'ü test projesinden yalnızca hedefleyebiliyorum (tamamlanmadığı için sorun yok). Ben benim test projelerinden derleyici uyarıları almak dışındaVS2010'daki 3.5 projesinin birim testi, CS1685 uyarıları verir

herşey harika:

uyarı CS1685: Önceden tanımlanmış tip 'System.Action' küresel takma birden meclislerinde tanımlanır; 'c: \ Program Files \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Core.dll' tanımı kullanarak tanımı '

Referans projeden System.Core'a kaldırdım ve uyarı yine de meydana gelen. Ben sadece, test ettiğim projenin 3.5'ü hedef alması için bir şeylerin üstesinden gelinmesi gerektiğini düşünüyorum. Uygulamalarımızda hedef 4.0'a onay verilinceye kadar bu uyarıyı ortadan kaldırmak için TEMİZ bir yol var mı?

cevap

5

MSTest'i ünite test çerçeveniz olarak kullandığınız anlaşılıyor. Öyleyse sorun, Visual Studio 2010'da MSTest hedeflemeyi desteklememesidir. Bu, testinizin 3.5 hedeflemesine rağmen, .NET derlemelerinin 4.0 sürümünü yükleyeceği anlamına gelir. Bu, bu senaryoda yüklü olan System.Core'un birden çok sürümü nedeniyle gördüğünüz çakışmalara neden olur.

Maalesef, projenizi 4.0'a yükseltmek dışında bu soruna geçici bir çözüm bulmak mümkün değildir.

+0

Uyarıyı bastırmanın herhangi bir yolu var mı? Uyarıları listeden çıkarırsak, yükseltene kadar durumun böyle olduğunu kabul edebilirim. Listeyi karıştırıyorlar ve ele almamız gereken meşru CA uyarılarını tanımlamayı zorlaştırıyorlar. – SonOfPirate

+1

@SonOfPirate Söz konusu csproj dosyasına bir "" öğesini el ile ekleyerek bunları bastırmanız gerekir. Bunu yapmak için .csproj dosyasını elle düzenlemeniz gerekir. – JaredPar

+0

Bu hile yaptı! – SonOfPirate