Visual Studio'nun bir çözüm oluştururken projeleri neden atladığını belirleme


95

Başkasının çalışmasında hata ayıklıyorum ve çözüm oldukça büyük. Her şeyi inşa etmeye çalıştığımda, çözüm içindeki birkaç proje oluşturulmaz ve sadece atlar. Oluşturma işlemi sırasında çıktı penceresinin görüntülenmesi şunu söylüyor:

1> ------ Atlandı Tümünü Yeniden Oluştur: Proje: pr1lib ------

Bu derlemelerin neden atlandığını nasıl belirleyebilirim? Ek çıktı bulamıyorum.

Bu VS2008 ile ve çözüm c # ve c ++ kodundan oluşuyor.


Verilen yanıtlara ek olarak, çözüm yapılandırma ayarlarının temizlenmesi / oluşturulması gereken her projenin işaretli durumda olduğundan (onay kutusu işaretli) emin olun:Build > Configuration Manager: check as needed
Metro Smurf

2
Projelerin neden atlandığını gidermek için. /flNedeni içeren bir msbuild.log dosyası almak için yapı ayarlarına eklediğinizden emin olun . Örneğin:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D

2
@T_D - Visual Studio'nun neresine '/ fl' eklerim? Günlük nerede görünecek? Bunu bir cevap olarak eklerseniz, diğer cevapların çoğu, orijinal soruyu cevaplamaktan ziyade, problem hakkında daha fazla bilgi almakla ilgili çeşitli rastgele tahminler olduğundan, olumlu oy vereceğim.
PaulG

@PaulG Aşağıdaki cevabıma bakın. Seçeneklerdeki ayarları yapmanız yeterlidir.
Darren Wood

Yanıtlar:


88

Çözüme sağ tıklayın, Özellikler'i ve ardından Yapılandırma Özellikleri'ni seçin. Burada hangi projeleri inşa edeceğinizi seçebilirsiniz.

[ değiştir ]:
Kdt'nin yorumuna bakın: ... yapılandırma özelliklerine baktığımda ... proje oluşturma hedefi "Karma Platformlar" için yapılandırılırken çözüm "Herhangi bir CPU" oluşturacak şekilde ayarlandı.

* Bu sorun benim başıma geldiğinde, ana proje sadece 'Herhangi bir CPU'ya sahipti ve alt dll'yi de' herhangi bir CPU'ya ayarladı, ancak bu profili sildim ve sadece 'x86' bıraktım. Yalnızca dll için x86 seçmek, çalışmaya başlamasını sağlar
[/ edit]


20
Gizemli bir "Atlanmış yapı" yaşıyordum ve konfigürasyon özelliklerine baktığımda proje gerçekten inşa edilmek üzere işaretlenmişti. Ancak, çözüm "Herhangi bir CPU" oluşturacak şekilde ayarlanmışken proje derleme hedefi "Karma Platformlar" için yapılandırıldı - bunları eşleşecek şekilde değiştirmek sorunu çözdü.
kdt

2
Benim durumumda, tüm projeler ve çözüm "Herhangi bir CPU" olarak ayarlanmış olmasına rağmen, bir proje inşa etmeyi atladı. Yalnızca çözümü "Karma Platformlar" a ve ardından oluşturacağı "Herhangi bir CPU" ya geri ayarladıktan sonra oldu. Öncesi ve sonrası çözüm dosyasının bir fark baktığımızda, değiştirilen {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUiçin {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. Tek fark, satırın sonuna "Herhangi biri" ve "CPU" arasında eklenen boşluktur.
Simon Tewsi

6
Benim durumumda, tüm projeler "Herhangi bir CPU" olarak ayarlandı ve projeler kaldırılarak (projenin kaldırılması dosyaların kaldırılmasına neden olmaz) ve çözüme yeniden eklenerek sorun çözüldü .
Hamid Mayeli

40

Ben de aynı sorunu yaşadım - "projeyi kaldır" ve "projeyi yeniden yükle" sorunu çözdü!


Bende de aynı sorun var ve boşaltma / yeniden yükleme işe yarıyor, ancak sorun geri geliyor gibi görünüyor ki bu bir grup projede olduğunda can sıkıcı oluyor ve her birini kaldırmanız / yeniden yüklemeniz gerekiyor ... bundan tamamen kaçınmanın yolu?
Liron

Bu, bir derleme yapmaya çalışırken, Visual Studio'nun projeleri çıktı penceresinde zaten güncel olarak hatalı olarak bildirmesi sorununu çözdü.
Kevin Laity

33

Derleme, yeniden inşa etme ve temizleme işlemleri atlanıyordu. Boşaltma ve yeniden yükleme yardımcı olmadı ve Visual Studio'yu yeniden başlatmak da olmadı.

Projeyi çözümden çıkarıp geri eklediğimde artık atlanmıyor. Bunu kaldırmak için Çözüm Gezgini'nde projeye sağ tıklayın> Kaldır> Tamam'a tıklayın. Geri eklemek için, Çözüm Gezgini'nde çözüme sağ tıklayın> Ekle> Mevcut Proje ve projenizi seçin


7
Bu projeye tüm ProjectReferences'ı yeniden eklemeniz gerekeceğini unutmayın.
Joseph

9

Confixguration x64 ise ve x64 derleyicisi kurulu değilse, projeyi atlayacaktır.


1
+1 Genius. SP1'i burada bulabilirsiniz: microsoft.com/download/en/details.aspx?id=10986
ashes999

X64 derleyicisi kurulmadığında, x64'ü bile seçemezsiniz.
Calmarius

Çözüm ve proje konfigürasyonları "x64" başlıklı bir girişi tanımlayabilir ve kullanabilir. İşlemci arşivi için 3. ddl. (Platform hedefi - yapı özellikleri sayfasının yarısında), mevcut olmayan
şeydir

9

Çözümüm daha önce bahsedilenle aynı: Sil -> Mevcut projeyi ekle

Ancak bu çözüm, projeler arasındaki referansların kaybolduğunu ima ediyor

: Yeniden ekleme başvuruları önlemek için ve sürüm kontrol sistemi kullanıyorsanız durumunda , aşağıdaki adımlarla acheve hedefe mümkün ne olursa olsun GIT veya TFS veya benzeri:

  1. Operasyondan önce tüm değişikliklerin yapıldığından / kontrol edildiğinden emin olun.

  2. Çözümden silip ekleyerek-var olan tüm projeleri gözden geçirin

  3. .Sln dosyasının değiştiğine dikkat edin

  4. Yeni .sln dosyasını saklayın, ancak tüm .cspoj dosyalarındaki değişiklikleri sürüm kontrol sistemiyle geri alın



5

Visual Studio 2008, 64 bit derleyicinin yüklenmemiş olmasından kaynaklanıyor olabilir.

Denetim Masası -> Programlar ve Özellikler -> Microsoft Visual Studio 2008 professional -> [çift tıklayın]

Visual Studio İletişim Kutusunda

Sonraki -> Özellik Ekle / Kaldır -> (Altında) Visual C ++ -> (seçin) x64 derleyici ve Araçlar


4

VS 2010'da da sorun var; Önerilen çözümlerden bazıları: derleme yapılandırmasını düzenleme, temizleme, hedef çerçeveyi değiştirme / yeniden değiştirme işe yaramıyor. Ancak projenin boşaltılması ve yeniden yüklenmesi bunu yapar.


4

Buradaki diğer olasılıklar arasında belgelemeye değer olabilecek garip bir tane vardı ..

Diğer iki veya üç projede kullanılan kodla çözümüme bir Paylaşılan Proje ekledim . Bildiğiniz gibi - Paylaşılan Projeler sadece koddur ve geleneksel anlamda bir proje değildir. Paylaşılan bir proje 'oluşturamazsınız', bu sadece diğer projelerin içine yerleştirilen ve orada inşa edilen koddur.

Ama bir şekilde çözüm dosyam, paylaşılan proje, inşa edilmesi gereken kendi şeymiş gibi güncellenmişti. Tahmin ediyorum ki, ne zaman inşa etmeye çalışsam ve paylaşılan projedeki kodu değiştirmemiş olsam, o zaman 'hiçbir şey değişmedi, bu yapıları atla' diye düşündü.

Paylaşılan projeyi solution.slndosyada şöyle buldum :

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

.. bu iyi. İyi olmayan şey, bu projenin aynı zamanda şöyle görünmesidir GlobalSection(ProjectConfigurationPlatforms) = postSolution:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

Bu dört satırı dosyamdan kaldırdım .slnve şimdi işler tekrar mutlu görünüyor


Harika! Bu oydu! Ben kaldırıldı her satır sadece "Küresel" dedi üst üste ile başlayan ve "EndGlobal" aşağı tüm satırları çıkardıkları yönündeki .Sln dosyasından. Sonra tekrar çalıştı.
Ted

Onları kaldırdığımda, çözümü oluşturduğumda otomatik olarak geri eklendi, ancak dört girişin tümü Debug | Any CPU'ya eşit olacak şekilde geri döndüler. Ama sorunumu çözdü.
EspressoBeans

Bu benim de sorunumdu. Paylaşılan proje GUID ile ilişkili tüm yapı yapılandırma girdilerini kaldırdım ve derleme bir kez daha çalıştı. Çok şaşırtıcı.
Zoop

3

Hey, bunu düzelttim. Yardımcı olabileceğini düşündüm. Büyük olasılıkla görsel stüdyo ile birlikte ilgili derleyicileri kurmadınız. Bu bugün başıma geldi - varsayılan olarak, VS 2008 yükleyici x64 C ++ derleyicisini yüklemiyor.

SP1'iniz varsa, VS kurulumunu değiştirmeden önce onu kaldırın. Bittiğinde, SP1'i yeniden yükleyin.


2

Yapı menüsüne gidin ve "yapılandırma yöneticisi" ni seçin. Bu, seçtiğiniz yapılandırmada hangi projelerin inşa etmek için yapılandırıldığını gösterecektir.


2

Az önce de benzer bir şey yaşadım. Sorunun ne olduğundan emin değilim, ancak Temizleme , Oluşturma , Yeniden Oluşturma vb. Olmaz . Visual Studio 2017'de çalışıyorum ve bir netstandard2.0montaj istedim . Benim için sorun, proje türünün bir şekilde yanlış olmasıydı, belki bir netcoreappsınıf kitaplığından başladım, bunun gibi bir şey, Çözüm dosyasına sıkışmış, hatırlamıyorum. Her neyse, projeyi yedekledim, yeni bir netstandardsınıf kitaplığı projesi oluşturdum ve yedeklenen bitleri hesaba kattım ve bu benim için düzeltti. HTH birisi.


2
  1. Görsel stüdyoyu kapat
  2. Sln dosyasını not defteri ile açın
  3. bunun gibi her şeyi silin: {B546C55D-9321-4FC0-B25C-46844222BEBE}. Fakes ile Hata Ayıklama | x86.ActiveCfg = Fakes ile Hata Ayıklama | x86 (bunlardan birkaçı olacak)

4. dosyayı kaydedin 5. visual studio açın ve hepsi daha iyi


2
Bu neden yardımcı oluyor? Biraz açıklama ekleyin ve olabildiğince ayrıntılı olun, böylece gelecekteki okuyucularınız bu adımları neden atmanız gerektiğini anlamanıza yardımcı olabilir.

2

15.9.11'e güncelledim, ... bazı derlemelerden sonra, aynı sorun: çoğu proje atlandı (bir saniye önce sorunsuz bir şekilde inşa edilen). Çözümü boşaltmak / yeniden yüklemek her zaman benim durumumda yardımcı oluyor, ancak kısa süre sonra tekrar olacak.

VS2017'deki büyük bir hata dışında neden olduğuna dair hiçbir fikrim yok

Yapılandırma yöneticisini kontrol ettim, tüm onay işaretleri oluşturulacak şekilde ayarlandı.

Belki nuget paketleriyle bir ilgisi vardır, ancak bu sadece bir tahmin

Çözüm sadece c ++ / vcxproj içerir, csproj yoktur. 64 ve 32 her ikisi de yüklü


2

Yapmanız gereken ilk şey, yapının neden projeleri atladığını teşhis etmektir. Bu nedenle, ayrıntılı bir derleme çıktısı elde etmek için ayrıntıyı detailedaşağıdaki yerde değiştirin Visual Studio.

görüntü açıklamasını buraya girin


8
Ayrıntı ayarları maalesef yardımcı olmuyor. Çıktı, nedenini açıklamadan hala yalnızca 'proje atlandı' diyor.
PaulG

1

Aynı sorunu yaşadım, proje ayarının Itanium CPU için olduğunu öğrendim, Intel olarak değiştirerek düzeltildi.


1

VS2005 ile aynı problemle karşılaşıyordu, tüm konfigürasyonlar doğruydu. Temiz proje komutunu bile atlıyordu.

Sonunda Boşaltma / Yeniden Yükleme sihri yaptı.


1

Çözüm gezgininizde Çözüm seçeneğine sağ tıklayın, ardından menünün altındaki Özellik seçeneğine tıklayın. Özellik pencerelerinde, sol bölmedeki Yapılandırma Özellikleri -> Yapılandırma'ya tıklayın, sağ bölmede proje listesini göreceksiniz, açılan pencerede Oluştur onay kutusunun işaretli olduğundan emin olun.


1

Çözümünüz bir NuGet proje (* .nuproj) dosyası içeriyorsa, onu kaldırmayı ve ardından çözümünüzü yeniden oluşturmayı deneyin.

Yukarıdakilerin hiçbiri işe yaramadıktan sonra bu benim için çalıştı.


0

Bazen çözümünüzde x86 diyelim ki hedef platformunuz olduğunda ve projelerinizde projenin aslında her zaman onu seçmediğini görüyorum.

İki kez kontrol etmek için proje özelliklerine gidin ve Build-> Platform ayarında bu platformu seçip seçemeyeceğinizi görün, eğer yapamazsanız, o zaman konfigürasyon yöneticisine gitmeniz ve bu konfigürasyonu oluşturmanız gerekecektir.


0

Yeni bir bilgisayardaki bazı Windows CE projelerinde bu sorunu yaşadım. Sorunu çözmek için "Projeyi kaldır" ve "Projeyi yeniden yükle" göründü, ancak aslında Visual Studio farklı bir platforma geçip bunu oluşturdu.

WinCE platformum aktif platform olarak gösterilmesine rağmen Visual Studio'nun bunu "gerçekten" görmediği ortaya çıktı. Çözüm, WinCE SDK'yı yönetici ayrıcalıklarıyla yeniden yüklemekti :

  • Visual Studio 2008'in çalışmadığından emin olun.
  • Yönetici olarak bir "Visual Studio 2008 Komut İstemi" açın. Windows 7'de kısayolu sağ tıklayın ve "Yönetici olarak çalıştır" seçeneğini seçin.
  • Aşağıdaki komutu girin: msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • Özel veya eksiksiz bir kurulum seçmek isteyip istemediğiniz sorulduğunda ve yükleyiciye belgelerin kurulumunu atlaması talimatını verin (benim durumumda bu adım gerekli değildi; aslında sadece mevcut kurulumu "onarmasını" istedim. )
  • Yüklemek

0

X64 derleyiciniz kurulu değilse, VS 2008 x64 hedeflerini atlayacaktır. VS 2008 varsayılan olarak değildir. Bir çeşit ha, şey.


0

Telerik'ten bir derleyiciden bir proje oluşturduktan ve sonra onu yeniden derlemeye çalıştıktan sonra çok benzer bir sorunla karşılaştım. Ne zaman yeniden inşa etmeye çalışsam proje atlandı. Yukarıdaki önerilerin birçoğunu denedim, ancak benim için proje özelliklerinde seçilen .NET Framework'tü.

Çözüm dosyasında projeye sağ tıklayın, özellikleri seçin, uygulama sekmesini seçin, hedef çerçeveyi 4.0'dan 3.5'e değiştirin.

Sonra, yeniden oluşturun ve bir dizi montaj referansında eksik hata var, bu da onlara henüz referans eklemediğim için mantıklı.


0

Visual Studio 2017'nin küçük bir güncellemesini güncelliyorum ve ardından yükleyici bana bilgisayarımı yeniden başlatmamı hatırlatıyor ancak yeniden başlatmadım.Projemi veya çözümümü Visual Studio 2017'de oluşturduğumda, yukarıdaki aynı sorunla karşılaşıyorum.Sanırım güncelleme belki anahtar, bu yüzden bilgisayarımı yeniden başlattım, yaptım.:>


0

Visual Studio 2017 15.9.4'te bu sorunu yaşadım ve biraz araştırma yaptıktan ve biraz zaman koyduktan sonra, çözümümde projelerden birinin .csproj dosyasının TFS'de birleştirildikten sonra bozulduğunu öğrendim. (Problemli projeyi çözümden kaldırarak başka projeler de oluşturabilirim). Sorunumu nasıl çözdüğüm, .csproj dosyasını birleştirmeden önce ve sonra karşılaştırıp düzeltmemdi. Ve düzeltme derken demek istediğim, kendi projemin türü .netStandard olduğundan , Configuration PropertyGroup dahil gereksiz satırları , yeni .csproj dosyasındaki tüm ve diğer satırları kaldırarak önceki .netstandard tarzı sürüme benzer hale getirdim.


0

Benzer bir problemim vardı, bir sebepten dolayı çözüm gezginde yüklenemeyen bir projem vardı. O projeyi yüklediğimde harika çalıştı.


0

Bu belaya yeni girdim:

VS 2017'yi en son 15.9.11 sürümüne güncelledim ve projelerimden birkaçı .net core 2.2'ye güncellendi. Başlangıçta tüm projeleri inşa etmeyi / temizlemeyi / yeniden inşa etmeyi denedim ve her şey atlandı. Çözmek için aşağıdakileri takip edin:

  1. Her projeyi kaldırdım ve yeniden yükledim.
  2. VS'nin tüm örneklerini kapattı ve VS'yi yönetici olarak açtı (kısayolu sağ tıklayın ve "Yönetici olarak çalıştır" seçeneğini seçin)

İşte bu, her şey geri döndü ve tüm projeleri başarıyla inşa edebildim.


0

Görsel stüdyo 2017

Yapılandırmayı Yapılandırma Yöneticisi'ne ekledikten sonra

Projeye Sağ Tıklayın -> Yalnızca Proje -> Yalnızca Oluştur / Yalnızca Yeniden Oluştur / Yalnızca Temizle

diğer tüm ayarlar doğruysa.


0

Konu: Yeniden Oluşturma, Oluşturma, Temizleme, ikisi hariç tüm projelerimi atlıyordu.

Benim için işe yaramayan çözümler:

  1. Çözüm yapılandırma ayarları beklendiği gibi olduğundan, hiçbir değişiklik yardımcı olmadı.

  2. Boşaltma ve yeniden yükleme işe yaramadı.

Oluş nedeni:

Bunun nedeni, hedef .NET çerçevesinin bu 2 proje için daha yüksek (4.7), diğer projeler için daha düşük olmasıydı. Başlangıçta benden .NET 4.7'yi yüklememi isteyen bir komut istemi belirdi, ancak makinemi yeniden başlatmadan yüklü olduğunu algılayamadı.

İşe yarayan çözümler:

  1. Makinemi yeniden başlatmak hile yaptı. Yeniden başlattıktan sonra, .NET 4.7'nin yüklendiğini doğru bir şekilde algıladı.
  2. Alternatif olarak, proje -> Özellikler -> Uygulama -> Hedef Çerçeve üzerine sağ tıklayarak ve atlanan diğer projelerle aynı şekilde ayarlayarak projenin hedef çerçevesini düşürmek de sorunu çözdü.

Daha fazla sorunla karşılaşmamak için en son .NET Framework'ü yüklemenizi ve makineyi yeniden başlatmanızı öneririm.


0

Oluşturulamayan bağımlı projelere sahip tüm projelerdeki derlemeleri atlayacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.