Soru Visual Studio 2015: Intellisense hataları ancak çözüm derler


Şu anda yeni Visual Studio 2015'i değerlendiriyoruz ve intellisense ile garip bir sorunla karşılaştık. Ana çözümümüzü yeni stüdyomuzla derlediğimde, yapı başarılı oluyor, ancak yine de 6 hata gösteriliyor.

Bunun gerçek bir hata olmadığını, sadece bir intellisense hatası olduğunu keşfettim. Kod kesinlikle doğru ve her şey başarıyla derlendi. Ancak kod kırmızı olarak işaretlenir ve hata listesinde hatalar gösterilir.

Tüm 6 hatalar aynı kökene sahiptir. Bu basit bir kurucu çağrısı. Yeterince garip, ama aynı kurucunun herhangi bir hata olmadan bazı oluşumları da var.

Hata mesajı:

Code: CS1729
Message: '<the class>' does not contain a constructor that takes that many arguments.
Project: <the project name>
File: <the path to the file>

Yeni stüdyo, herhangi bir eski yazılım (VS13 olmadan) yüklü bir Windows 7 üzerine kurulmuştur.

Önbellekleri silmeye, suo dosyasını silmeye, sil ve obj dizinlerini silmeye, temizledikten ve çözümü yeniden oluşturmaya çalıştım. Ama hiçbir şey işe yaramadı.

Bu davranışları bana açıklayan var mı?


76
2017-08-11 13:49


Menşei


İntellisense tarafından kullanılan ayrıştırıcı, aslında kodu derlemek için kullanılan derleyici ile aynı değildir. - chill
Bu VS 2013'te de oluyor. VS henüz tüm kod tabanını endekslemeyi bitirmemiş olabilir. Eğer derler ve beklendiği gibi çalışırsa, ona hiç dikkat etmem. - Code Different
@chill VS2015'te aynı ayrıştırıcı, Roslyn'ın parçası olmalıdır. - Lasse Vågsæther Karlsen
Sorunu yeniden üreten küçük bir proje oluşturabilir misiniz? Öyleyse kodu gönderir misiniz? - Lasse Vågsæther Karlsen
Sınıf kısmi mi, yoksa derleme zamanında üretilen herhangi bir parçası mı? - Panagiotis Kanavos


Cevaplar:


Ayrıca taşınmış bir proje ile bu sorun vardı, bu yüzden Microsoft.CSharp dll başvuruyor. Bazı projelerde referansı projede kaldırmak ve yeniden eklemem gerekiyordu.


35
2017-09-15 12:40



Bir ekip üyesi çözüm için yeni bir proje eklediğinde ve bazı cs dosyalarını mevcut bir projeden yenisine geçirdiğinde bunu yapmak zorundaydım. En son geldiğimde birçok hata gördüm ama derleyebildim ve çalıştırabilirim. Kırık projeden yeni projeye yapılan başvuruyu bırakıp yeniden ekledim. - Bill
Tam olarak Bill'in tarif ettiği durum bizim başımıza geldi. Bazı sınıflar yeni bir projeye taşındı. Visual Studio, kaynak kontrolünden yeni proje referansı alındığında Intellisense önbelleğini güncellemedi gibi görünüyor. Referansı tekrar girerek manuel olarak bunu yapmaya zorladı. - Peter Macej
Çözüm derler, ancak bazı dosyalarda dalgalı hataları gösterir. Sadece Debug’ta "Release" bölümünde gösterilen hiçbir hata yok. Microsoft.CSharp kaldırıldı ve hatalar gitti, teşekkürler! - Michael
@Michael Bu bahşiş için teşekkürler. Bende aynı konu var. Hatada Hata yok, ancak Hata Ayıklama'da çok fazla hata var. - user2061057
Belirtilen sınıf kendi kodunuzsa, bunu hariç tutabilirsiniz, ardından sınıfı içeren dosyayı dahil edebilirsiniz. IntelliSense'i güncellemek için VS'yi tetiklemelidir. #awfulbug - davidshen84


Binlerce intellisense hatası ve 0 derleme hatalarım vardı. .Suo dosyasını sildikten sonra bir yeniden başlatma VS intellisense hataları gitti.

Suo dosyası şu kaynağa göre nispeten bulunur: .vs \ SolutionName \ v14.suo

Yoruma göre: * .suo'nun gizli bir dosya olduğuna dikkat edin.

Düzenleme: Açıklamalara göre, VS2017 aynı soruna sahiptir, böylece benzer bir çözümü kullanabilirsiniz: Sil .vs \ SolutionName \ v15.suo


129
2017-11-02 12:30



Sadece bir not: *.suo dosyalar bazı durumlarda gizlenmiş olabilir. Bu yüzden View Hidden files Windows Explorer'dan bir seçenek. - Athafoud
.Suo'nun öldürülmesinin benim için hiçbir etkisi yoktu, fakat bin ve objeleri silip çözümü yeniden inşa ettiler. - Holger Böhnke
Bu doğru cevap olmalı - Mr_LinDowsMac
.Suo dosyasının silinmesi benim için problemi çözmedi (VS2015'te) Kodun arkasından gelen özellikleri referans alan javascriptte sahte kırmızı dalgalı bir görüntü alıyorum: <%=Foo%> değişkenin bildirilmediğini söyleyen, ancak her şey çalışma zamanında çalışır. - Tim
% 100 emin değilim, ama bu da XAML ile aldığım hatalı işaretleme hatalarını giderebilirdi - Geordie


Visual Studio 2017 ASP.Net Temel Projesinde benzer bir sorunla karşılaştı. Aşağıdaki adımlar benim için hile yaptı

  1. Temiz Çözümü Gerçekleştirin
  2. VS kapatın
  3. .Suo dosyasını sil ve bin / obj dizinlerini sil
  4. VS yeniden aç

8
2018-04-01 21:24



Bu, zaman zaman yapmak için sıkıcı bir şey çalışır. Yayın modundayken her zaman bu problemim olur. Garip VS kendisi tarafından anlayamıyorum. - nawfal


Ayrıca bu sorun (başlık, belirli hata mesajı değil), editördeki dalgalı çizgiler de vardı. İlk dalgalı çizgi ilkin altında #include Önceden derlenmiş bir üstbilgiyi isimlendiren deyim. Intellisense, önceden derlenmiş üstbilgiyi dahil etmek için başarısız olur, ancak bunu bir hata olarak listelemez; bunun yerine, hataları önceden listelenen başlıktaki beyanlara dayanan (çok doğru bir şekilde) dosyadaki hataları listeler.

Intellisense ortamımda önceden derlenmiş üstbilgiyi bulamamasının nedeni, adlandırılan başlığın gerçek bir dosya olmamasıdır. Önceden derlenmiş üstbilgi ayarları doğru şekilde yapılandırıldığı sürece, kullandığım diğer VC veya gcc sürümlerinde veya 2015 derleyicisinde olması gerekmez. Görünüşe göre artık Intellisense için değil. 2013'te farklı olduğundan emin değilim, belki de hiç farketmedim.

Bu, burada bildirilen sorun olması muhtemel olmayan bir durumda, çözüm basittir: Önceden belirtilmiş başlığın takma adıyla küçük bir dosya oluşturun. #include yönergeleri ve bu dosyanın önceden derlenmiş üstbilginin gerçek adını içermesine izin verin.

Eğer merak ediyorsanız ... neden '#include' ifadesinde önceden derlenmiş üstbilgi ismi ile önceden derlenmiş üstbilginin gerçek dosya adı arasındaki bu ayrım? Önceden derlenmiş üstbilgi ayarlarının doğru yapılandırıldığını garanti ettiği için. Önceden derlenmiş bir üstbilginin "#included" olduğu her yerde, bununla ilgili hiçbir dosya bulunamaz. Gerçek başlığın gerçekte önceden derlenmiş (ikili) sürümü okunur veya derleme başarısız olur. Açıkçası, bir dezavantajı şaşkınlığıdır insanlar sadece Intellisense'i değil, kodu okuyor.


6
2017-09-15 20:55





Diğerleri gibi benzer bir problem, ancak farklı çözünürlük. Gönderme durumunda başka birine yardım edebilirim.

Visual Studio 2017 Çalışıyor 15.5.2. Git kullanıyorum ve sık sık şubeleri değiştiriyorum. Birkaç hafta önce editörlerin hataları göstermelerini (referansların geçerli olmasına rağmen bulamadıkları türlerle ilgili) başlatmaya başladım. Derleme harika çalıştı. Aynı konuyu VS 2017 15.6 Preview'da (Jan 6, 2018) doğruladı. Önbelleği, SUO dosyalarını veya bin / obj klasörlerini silmeye ve hiçbir etki yapmaya çalışmam. İlk başta işe yarayacaktı. Visual Studio'yu yeniden aç ve her şey güzel görünürdü. "Rebuild Solution" seçeneğini kullanın ve IntelliSense hataları döner. Visual Studio'nun kaldırılmasını / yeniden yüklemesini bile denedim.

Her iki Visual Studio'nun da aynı sürümüyle aynı makinede aynı sorunu yaşadım.

Kayıp tiplerle ilgili hatalara bakıldığında, bunların hepsinin referans olarak verilen iki projeden geldiği ortaya çıktı. Bu referanslardan biri, çözümdeki hemen hemen her proje tarafından kullanılan bir ortak proje idi, ancak bunlardan biri çok referans olmaksızın küçük bir projeydi. Öyle ki, küçük projeye daha büyük paylaşılan projem de başvurdu. Visual Studio'da küçük projeyi kaldırdım ve yeniden yükledim. Hatalar gitti! Hatalar Rebuild Çözümüne geri gelmedi.

Sonra Git şubelerini değiştirdim ve hataların hepsi geri geldi. Neyse ki küçük projeyi boşaltma / yeniden yükleme adımlarını tekrar ettim ve hatalar ortadan kalktı.

Git şubelerini her değiştirdiğimde, bu işlemi tekrarlayana kadar hatalar geri gelir. Kaldırdığım / yeniden yüklediğim küçük proje için Git dalları arasında sıfır değişiklik var. Bu dizinin neden sorunumu çözmediğini belirsiz.


5
2018-01-06 17:39





Bugün MSVC ++ 2015 ile benzer bir problemim var. Neredeyse vazgeçtim ve IDE ipuçlarına gerek kalmadan devam etmeye karar verdim, fakat bazen alt programın sorunlu stdafx.h standart kütüphane başlıklarını içermediğini fark ettim. Modül derlemesini yavaşlatabileceğini, ancak standart başlıkların dahil edilmesinin orada sabit Intellisense de olabileceğini önerdim.


0
2018-01-22 19:40





Çok yaşadım stdfax.h Ek İçinde Dizinler. Emin ol stdafx.h amaçlanan ilk senin yolunda.


0
2018-05-30 14:56