Visual Studio bir yerden bir projeye yanlış bir yol alıyor


98

Visual Studio (ve muhtemelen TFS) bir şekilde (sanırım bir kaynak denetimi birleştirme sırasında) çözümümdeki bir projenin yolu hakkında kafasını karıştırdı.

Burada olduğunu düşünüyor (basitlik için örnek yollar):

C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj

oysa proje dosyası burada bulunur:

C:\My Projects\ExampleSolution\ExampleProjectCorrect\ExampleProjectCorrect.csproj

Hayatım boyunca onu doğru yeri tanımasını sağlayamıyorum. Denedim:

  • Projeyi doğru konumdan kaldırıp yeniden eklemek. Bir hata mesajı beliriyor The project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be found.

  • Tüm referansların ExampleProjectCorrect.csprojdoğru yollara sahip olmasını sağlamak için .sln dosyasını el ile düzenleme .

  • Stüdyonun yanlış yolu nerede sakladığını bulmak için hem doğru hem de yanlış yollar için çözüm dizinindeki dosyalarda bir arama yapmak.

  • VS ve TFS için önbellek dizinlerini silme

Saçlarımı yırtıyorum çünkü 100 projede hiçbir fark yaratmadığı için çözümü yeniden oluşturamıyorum ve üzerinde çalışan birkaç diğer geliştiriciyle birlikte kaynak kontrolüne bağlı.

Bu yanlış yolu nerede depoladığı ve / veya lanet şeyin doğru şekilde yüklenmesi için nasıl sıfırlanacağı konusunda bana doğru yönü gösterebilecek biri var mı?


Peki, projeyi ExampleProjectWrong dizinine taşırsanız ne olur?
Hans Passant

Tamam, biraz ilerleme .. Yanlış klasöre taşımak onu görsel stüdyoya yüklememe izin veriyor. Bununla birlikte, 'ExampleProjectWrong' dizini, hemen hemen aynı klasör yapısını içeren başka bir projeye ev sahipliği yaptığı için onu orada tutamıyorum. Öyleyse, şimdi yükledim projenin yolunu değiştirmeye nasıl gideceğime dair bir fikrin var mı? Yüklenmemiş proje özelliklerindeki yol alanı, proje kaldırıldığında bile kullanılamıyor mu?
Charlie Drewitt

3
Bu sorunu şimdi ikinci kez yaşadım, ancak bu sefer dallanmış projenin orijinal klasörü hedeflediğini, çünkü farklı bağlantı dizileri kullandığımı anlayabildim. Bu ilk seferinde çok garipti, visualstudio'nun kaynak klasördeki dosyalarda hata ayıklamasına ve onu daldaki dosyalarla karıştırmasına ve hatta Log4net'in orijinal klasöre girmesine neden oldu! Did çözüm suo dosyasını silin ve şimdi doğru sadece kollara dosyaları erişiyor.
Binke

2
Aynı sorunu yaşadım. Suo dosyasını silmek kadar kolay olmadı. Yapmam gereken: 1. Soruna neden olan projeyi çözümden çıkarmak. 2. Çözümü kaydedin. 3. .suo dosyasını silin 4. Çözümü açın ve projeyi yeniden ekleyin.
SeanLAllen

1
SUO dosyasını silmek benim için çalıştı.
DanielV

Yanıtlar:


96
  1. Çalışma Alanlarını Yönet'e gidin (Dosya / Kaynak Kontrol menüsünden veya Kaynak Kontrol Gezgini'ndeki çalışma alanı açılır menüsünden)
  2. düzenle seççalışma alanınız .
  3. Çalışma klasörleri altında, kaynak kontrol dizini için eski / yanlış proje dizini için bir eşleme görmelisiniz.
  4. Seçin ve tıklayın kaldırmayı .
  5. VS'yi kapatın ve suo dosyasını silin.

Hala yanlış dizine başvuruyor. Belki yeniden bağlama bu noktada işe yarayabilir ama bunu denemedim. Projenizi yeniden yükleyin ve gitmeniz iyi olur.


1
Ayrıca, kaynak kontrol gezginindeki yerel yol bağlantısına da aldanmayın. Çalışma alanım için birden fazla eşlemem vardı ve orada beklediğim şeyi gösteriyordu, ancak projeyi yüklemeye çalıştığında diğer yolu kullanıyordu.
Benjamin Potts

1
.suo dosyası gizlidir, bu nedenle "tüm dosyaları ve klasörleri göster" seçeneğini etkinleştirmeniz gerekir
ANIL MANE

8
Visual Studio 2015'te aynı hatayı yaşadım. Benim için işe yarayan şey, gizli .vs dizinini ve .suo dosyasını da silmekti.
Daniel Leiszen

5
VS2015 için .suodosyanız düşündüğünüz yerde olmayabilir. .slnDosyanızın yanında yaşayan dosyayı silin ("gizli dosyaları göster" i unutmayın) ve ayrıca adresindeki bir alt dizinde saklanan bir tane var .\.vs\[solution_name]\v14\.suo. İkisini de aldıktan sonra projeyi tekrar ekleyebilirim. Hata - @DanielLeiszen'e kısmi kredi (az önce aynı şeyi yorumladığını fark etti)
Richard Hauer

1
Ben .suo dosyayı silmek zorunda kaldı ve hakim aklı için VS yeniden
Appulus

33

Sadece .suobenim için çalışan çözüm dosyasını silmek .


5
VS2015'te, silmeden önce tüm Visual Studio örneklerini kapatmam gerekiyordu <SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suo.
GraehamF

12

Visual Source Safe 2005'ten TFS 2012'ye geçiş yaptıktan sonra bu sorunla karşılaştım. Önümüzdeki birkaç hafta içinde "Dönüştürme Sihirbazı" nın bitmesini bekleyemedim, bu yüzden VSSConvert.exe'yi çalıştırdım. Bu, 6 yıl kadar bir tarih aldı ve onu TFS'ye taşıdı .. gerçek zaman çizelgesi geçmişini alamadım .. Aynı gün, tarihin gerçek kontrollerini belirten yorumlarla birlikte bir sürü giriş aldım. . fena değil.

Yani bütün gece koştuktan sonra (Başarılı bir şekilde, yaşasın!), Tam da bu soruda belirtildiği gibi projelerimi yüklerken sorun yaşıyordum. Bazı nedenlerden dolayı, birkaç projeye yanlış bir dizine atıfta bulunuluyordu. .Sln, .vsproj dosyalarını kontrol ettim ve en yenisini alıyorum, yeniden alıyorum, kaldırıyorum, vb. Burada belirtilen her şeyi denedim ... hatta çalışma alanımı yükseltmeyi denedim ki bunun ne yaptığından bile emin değilim.

SONUNDA ... * .suo dosyasını sildim dosyalarını ve . İşe yaradı.

Bunun için birkaç saat geçirdim.


2
* .Suo dosyasını silmeden önce, tüm Visual Studio örneklerini kapattığınızdan emin olun ve ardından çözümü yeniden açın.
Mas

5

Biraz farklı bir çözüm.

TFS, belirli bir Çözüm için var olmayan bir yolu görüntülüyordu. Önceden, ayrı bir D: sürücüsüne sahip bir dizüstü bilgisayarım vardı, ancak şimdi sadece bir C: sürücüm var. TFS hala projemin D: \ Project \ MikesProject konumunda depolandığını düşünüyor

Ben yoktu .suo, D silmek için dosyayı: yol değildi benim çalışma alanları her yerde sözü (altında uzakta gömülüFile\Source Control\Advanced\Workspaces menü), TFS benim (no-uzun-var) D'de son dosyaları var mı olduğunu gösterdi: dizin ve VS2013'teki TFS, bu proje için "Eşlemeleri Kaldır" seçeneğine sahip değildi.

Ama ne yaptı işi sadece proje üzerinde "Get son sürümünü" yapmak oldu.

Bunu yaptıktan sonra, kodun yeni bir kopyası C: sürücüme yazıldı ve (ilginç bir şekilde), şimdi Yerel Yolun altı çizili olarak gösteriliyordu .

Daha önce, D: yolu bu şekilde gösterilmiyordu.

Garip. Çok tuhaf.


2
Benim için tam olarak aynı durum. Bu yanlış yoldan dolayı tetiği çekip "En Son Haber Al" konusunda tereddüt ettim ama @Mike bana cesaret verdi!
Jonathan

2

Hamle ve yeniden adlandırma ile ilgili benzer sorunlar yaşadık. Yerel dizinleri silmek ve sonra tekrar çözmek.


2

.suoDosyayı ve .vsklasörleri sildikten sonra bile, dosyayı düzenlemem ve doğru olmasına rağmen .slneski göreli url'yi kaldırmam gerekti . Görünüşe göre VS, adı bir ipucu yolu olarak da kullanıyor.SccProjectName#SccLocalPath#


1

.Suo dosyasını (uzantı dahil) silmeyi veya yeniden adlandırmayı deneyin. Bu dosya, çözüm dosyanızın bulunduğu konumdadır. Benim için çalıştı.


0

Sadece tahmin ediyorum ama belki de diğer projelerinizden bazıları projenize yanlış yerden referans veriyor? Bu durumda, yalnızca projeyi silmeniz ve çözümünüze yeniden eklemeniz gerekmez, aynı zamanda referans projelerinden (.csproj dosyalarında saklanan) referansları da silmeniz ve yeniden oluşturmanız gerekecektir.


cevap için teşekkürler. çözüm içindeki başka bir projeden proje referans alınmaz. dosyalarda bulmanın neden işe yaramadığını açıklayabilir misiniz? Tecrübelerime göre, ona 'Tüm Çözüm'ü seçmek yerine' Ara 'için bir dizin yolu verirseniz, özellikle sadece belirli dosya türlerini araması özellikle belirtilmediği sürece tüm dosya türlerini arayacaktır.
Charlie Drewitt

Üzgünüm, haklısınız, "Dosyalarda bul" u sadece çözümdeki dosyalar için kullandığınızı sanıyordum, çözüm dizini için değil, bunu kaçırdım. Yani çalışmalı. Tam olarak hata mesajı belirdiğinde daha ayrıntılı bir açıklama verebilir misiniz? Derleme sırasında ortaya çıkıyor, böylece hangi proje derlemesinin başarısız olduğunu görebiliyorsunuz?
Doktor Brown

0

Birçok öneriyi denedikten sonra suo dosyasını sildim (tekrar). Son kez çalıştı. Neden daha önce işe yaramadı bilmiyorum. Genel olarak suo dosyasını silmeyi yaptığım ilk adımlardan biri buluyorum.


0

Asp.net web sitesi çözümümü Dev Şubemden açtırdım. Sonra başka bir amaçla aynı çözümü Ana şubeden açtım.

Dev dalındaki .ascx.cs dosyamdan birinde değişiklik yaptım ve kesme noktası belirledim. Hata ayıklayıcıyı çalıştırdığımda, Ana şubeye isabet eden .ascx.cs dışındaki tüm kırılma noktalarım Dev Branch'de vuruldu. Hiçbir fikrim yok.

Geçici klasörü temizlemeye çalıştım ama işe yaramadı.

Ne işe yaradı:

Visual Studio'nun tüm örneklerini kapattı

Çözümü Dev şubesinden tekrar açtı.

Tekrar koşun ve kırılma noktaları vurmaya başladı.


0

Benim durumumda * .sln dosyasını proje klasörüne kopyaladım ve projenin yolunu * .sln dosyasına değiştirdim. Yalnızca bu, sorunu çözdü (2015 sp1'e kıyasla, winservise projesi).

* .Suo'yu silmek bana yardımcı olmuyor.


0

Yine başka bir çözüm bizim için çalıştı - suo'yu ve bu başlıkta bahsedilen neredeyse her şeyi silmeyi denedikten sonra. Çözümde csproj dosyasının hayalet versiyonunu gösteren bir projemiz vardı. Bu dosyayı sildik ve yollarımız eklemeye çalıştığımız başka bir projede düzeltildi.


-1

Web uygulamanızı IISExpress yerine Yerel IIS altında çalıştırıyorsanız, proje özelliklerine girerek "Sanal Dizin Oluştur" düğmesine basın. Tamamlandıktan sonra, "Temiz Çözüm" ve "Çözümü Yeniden Oluştur" uygulayın.



-3

Bunun eski bir çizgi olduğunu biliyorum. Ben de aynı sorunu yaşadım. Kısa süre önce TFS'yi taşıdık, bu yüzden yeni sunucuyla eşleştirmek için yeni bir çalışma alanı oluşturdum ve eskisini sakladım. Yeni çalışma alanımı hedeflemesi gereken bir çözümü her açtığımda, VS her zaman eski çalışma alanımı kaldırana kadar eski eşleme dizinimden projeleri yüklemeye çalıştı.


bu gerçekten ilk soruya herhangi bir yardım
sağlamıyor

Sorunumun aynı nitelikte olduğunu sanıyordum. Biri eski iki çalışma alanım vardı. Yenisi içerisinde çalıştım, çözüm ürettim, projeler ekledim. her şey sadece çözümü kapatmadıysam iyidir. Ancak çözümü kaydedip açmaya çalışırsam, VS her zaman eski çalışma alanımda eşlenen dizinden çözüme projeler yüklemeye çalıştı.
BackToSorrento
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.