Visual Studio mengambil lintasan yang salah ke proyek dari suatu tempat

98

Visual Studio (dan mungkin TFS) entah bagaimana (saya pikir mungkin selama penggabungan kontrol sumber) menjadi bingung tentang jalur proyek dalam solusi saya.

Ia mengira itu ada di sini (contoh jalur untuk kesederhanaan):

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

Padahal sebenarnya, file proyek terletak di sini:

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

Saya tidak bisa seumur hidup saya membuatnya mengenali lokasi yang benar. Saya telah mencoba:

  • Menghapus dan menambahkan kembali proyek dari lokasi yang benar. Pesan kesalahan muncul mengatakanThe project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be found .

  • Mengedit file .sln secara manual untuk memastikan semua referensi ke ExampleProjectCorrect.csproj memiliki jalur yang benar.

  • Melakukan pencarian di file di direktori solusi untuk jalur yang benar dan salah, untuk mencoba melacak di mana studio menyembunyikan jalur yang salah.

  • Menghapus direktori cache untuk VS dan TFS

Saya merobek rambut saya karena saya tidak dapat membuat ulang solusi karena hampir tidak ada bedanya 100 proyek dan terkait dengan kontrol sumber dengan beberapa pengembang lain yang mengerjakannya.

Adakah yang bisa mengarahkan saya ke arah yang benar tentang di mana ia menyimpan jalur yang salah ini dan / atau cara meresetnya sehingga benda sialan itu akan dimuat dengan benar?

Charlie Drewitt
sumber
Jadi, apa yang terjadi jika Anda memindahkan proyek ke direktori ExampleProjectWrong?
Hans Passant
Ok, beberapa kemajuan .. Memindahkannya ke folder yang salah memungkinkan saya memuatnya di studio visual. Namun saya tidak dapat menyimpannya di sana karena direktori 'ExampleProjectWrong' adalah rumah bagi proyek lain, yang berisi banyak struktur folder yang sama. Jadi, ada ide bagaimana cara mengubah jalur proyek sekarang saya sudah memuatnya? Bidang jalur di properti proyek yang dibongkar tidak tersedia, bahkan ketika proyek dibongkar?
Charlie Drewitt
3
Saya mendapat masalah ini untuk kedua kalinya sekarang, tetapi kali ini saya dapat mengetahui bahwa proyek bercabang menargetkan folder asli karena saya menggunakan string koneksi yang berbeda. Ini sangat aneh pertama kali, menyebabkan visualstudio melakukan debug dalam file dari folder sumber, dan mencampurnya dengan file dari cabang, dan bahkan Log4net masuk ke folder asli! Apakah menghapus solusi file suo dan sekarang hanya mengakses file bercabang dengan benar.
Binke
2
Saya memiliki masalah yang sama persis. Itu tidak semudah hanya menghapus file suo. Saya harus: 1. Menghapus proyek yang melanggar dari solusi. 2. Simpan solusinya. 3. Hapus .suo 4. Buka solusi dan tambahkan kembali proyek.
SeanLAllen
1
Menghapus file SUO berhasil untuk saya.
DanielV

Jawaban:

96
  1. Buka Kelola Ruang Kerja (baik melalui menu Kontrol File / Sumber atau drop-down ruang kerja di Penjelajah Kontrol Sumber)
  2. pilih edit untuk ruang kerja Anda.
  3. Anda akan melihat, di bawah folder kerja, pemetaan untuk direktori kendali sumber ke direktori proyek lama / salah.
  4. Pilih dan klik hapus .
  5. Tutup VS dan hapus file suo.

Itu masih mereferensikan direktori yang salah. Mungkin rebinding mungkin berhasil pada saat ini, tetapi saya tidak mencobanya. Muat ulang proyek Anda dan Anda siap melakukannya.

Benjamin Potts
sumber
1
Juga, jangan tertipu oleh tautan jalur lokal di penjelajah kendali sumber. Saya memiliki lebih dari satu pemetaan untuk ruang kerja saya dan itu menunjukkan apa yang saya harapkan di sana tetapi ketika mencoba memuat proyek itu menggunakan jalur lain.
Benjamin Potts
1
File .suo disembunyikan sehingga Anda harus mengaktifkan opsi "tampilkan semua file dan folder"
ANIL MANE
8
Dalam Visual Studio 2015 saya mengalami kesalahan yang sama. Yang berhasil bagi saya adalah menghapus direktori .vs yang tersembunyi dan juga file .suo.
Daniel Leiszen
5
Untuk VS2015, .suofile Anda mungkin tidak berada di tempat yang Anda pikirkan. Hapus salah satu yang ada di samping .slnfile Anda (jangan lupa untuk "tampilkan file tersembunyi") dan ada juga yang bersembunyi di subdirektori di .\.vs\[solution_name]\v14\.suo. Setelah saya mendapatkan keduanya, saya dapat menambahkan proyek itu lagi. Ups - sebagian kredit untuk @DanielLeiszen (baru sadar dia berkomentar hal yang sama)
Richard Hauer
1
Saya harus menghapus file .suo dan memulai ulang VS agar kewarasannya berlaku
Appulus
33

Cukup menghapus .suofile solusi yang berhasil untuk saya.

Lloyd Powell
sumber
5
Di VS2015 saya harus menutup semua contoh Visual Studio sebelum menghapus <SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suobekerja untuk saya.
GraehamF
12

Saya menghadapi masalah ini setelah melakukan migrasi dari Visual Source Safe 2005 ke TFS 2012. Saya tidak sabar menunggu "Conversion Wizard" akan keluar dalam beberapa minggu ke depan jadi saya hanya menjalankan VSSConvert.exe. Ini membutuhkan 6 tahun atau lebih sejarah dan memindahkannya ke TFS .. sementara saya tidak mendapatkan sejarah timeline yang sebenarnya .. Saya mendapat banyak entri pada hari yang sama dengan komentar yang menunjukkan check-in sebenarnya dari sejarah. . tidak buruk.

Jadi setelah berjalan sepanjang malam (Berhasil, hore!), Saya mengalami masalah saat memuat proyek saya seperti yang dinyatakan pertanyaan ini. Untuk beberapa alasan, beberapa proyek dirujuk ke direktori yang salah. Saya memeriksa file .sln, .vsproj, dan mendapatkan yang terbaru, menghapus pengambilan ulang, menambahkan penghapusan, dll. Saya mencoba semua yang disebutkan di sini ... bahkan memutakhirkan ruang kerja saya, yang saya bahkan tidak yakin apa yang dilakukannya.

AKHIRNYA ... Saya menghapus file * .suo dan viola. Berhasil.

Saya menghabiskan beberapa jam untuk yang satu ini.

hanzolo.dll
sumber
2
Sebelum Anda menghapus file * .suo, pastikan untuk menutup semua contoh Visual Studio, kemudian buka solusi lagi.
Mas
5

Solusi yang sedikit berbeda.

TFS menampilkan jalur yang tidak ada untuk Solusi tertentu. Sebelumnya, saya memiliki laptop dengan drive D: terpisah, tetapi sekarang, saya hanya memiliki drive C:. TFS masih mengira proyek saya disimpan di D: \ Project \ MikesProject

Saya tidak memiliki .suofile untuk dihapus, jalur D: tidak disebutkan di mana pun di Workspaces saya (terkubur di bawahFile\Source Control\Advanced\Workspaces menu), TFS menunjukkan bahwa saya memang memiliki file terbaru di D saya (tidak lagi ada): direktori, dan TFS di VS2013 tidak memiliki opsi "Hapus Pemetaan" untuk proyek ini.

Tapi apa yang terjadi pekerjaan adalah untuk hanya melakukan "Dapatkan versi terbaru" pada proyek.

Setelah melakukannya, salinan baru dari kode tersebut ditulis ke drive C: saya, dan (yang menarik), sekarang Jalur Lokal ditunjukkan dengan garis bawah .

Sebelumnya, jalur D: tidak ditampilkan seperti ini.

Aneh. Sangat aneh.

Mike Gledhill
sumber
2
Situasi yang sama persis untukku. Saya ragu-ragu untuk menarik pelatuk dan "Dapatkan yang Terbaru" karena jalur yang salah itu, tetapi @Mike memberi saya keberanian!
Jonathan
2

Kami mengalami masalah serupa dengan pemindahan dan penggantian nama. Menghapus direktori lokal dan kemudian menyelesaikannya lagi.

Tony Hopkinson
sumber
2

Bahkan setelah menghapus .suofile dan .vsfolder, saya harus mengedit .slnfile dan menghapus url relatif lama dari SccProjectName#meskipun SccLocalPath#sudah benar. Rupanya VS juga menggunakan nama tersebut sebagai jalur petunjuk.

Adam
sumber
1

Cobalah untuk menghapus atau mengganti nama file .suo (termasuk ekstensi). File ini berada di lokasi yang sama dengan file solusi Anda. Itu berhasil untuk saya.

Mandeep Janjua
sumber
0

Hanya menebak-nebak, tetapi mungkin beberapa proyek Anda yang lain mereferensikan proyek Anda dari lokasi yang salah? Dalam kasus ini, Anda tidak hanya perlu menghapus dan memasukkan kembali proyek ke dalam solusi Anda, Anda juga harus menghapus dan membuat ulang referensi dari proyek referensi (disimpan dalam file .csproj mereka).

Doc Brown
sumber
terima kasih atas tanggapannya. proyek tidak dirujuk dari proyek lain dalam solusi. dapatkah Anda menjelaskan mengapa menemukan dalam file tidak akan berfungsi? menurut pengalaman saya jika Anda memberikan jalur direktori ke 'Lihat', alih-alih memilih 'Seluruh Solusi', ia akan mencari semua jenis file kecuali secara khusus diberitahu untuk hanya mencari jenis file tertentu?
Charlie Drewitt
Maaf, Anda benar, saya pikir Anda menggunakan "Temukan dalam file" hanya untuk file dalam solusi, bukan untuk direktori solusi, saya melewatkannya. Jadi itu harus berhasil. Dapatkah Anda memberikan deskripsi yang lebih terperinci kapan tepatnya pesan kesalahan tersebut muncul? Apakah ini terjadi saat kompilasi, sehingga Anda dapat melihat kompilasi project mana yang gagal?
Doc Brown
0

Setelah mencoba banyak rekomendasi, saya menghapus file suo (lagi). Terakhir kali berhasil. Mengapa tidak berhasil sebelumnya, saya tidak tahu. Secara umum saya menemukan menghapus file suo salah satu langkah pertama yang saya lakukan.

pengguna3097514
sumber
0

Saya membuka solusi situs web asp.net dari Cabang Dev saya. Kemudian untuk beberapa tujuan lain saya membuka solusi yang sama dari cabang Utama.

Saya membuat perubahan ke salah satu file .ascx.cs saya di cabang dev dan mengatur breakpoint. Ketika saya menjalankan debugger, semua break point saya terkena di Dev Branch kecuali untuk .ascx.cs yang mengenai cabang Main. Tidak tahu.

Mencoba membersihkan folder Sementara tetapi tidak berhasil.

Apa yang berhasil:

Menutup semua contoh Visual Studio

Membuka solusi dari cabang Dev lagi.

Jalankan lagi dan break point mulai memukul.

gbs
sumber
0

Dalam kasus saya, saya menyalin file * .sln ke dalam folder proyek dan mengubah jalur ke proyek ke dalam file * .sln. Hanya ini yang menyelesaikan masalah (vs 2015 sp1, proyek winervise).

Hapus * .suo tidak membantu saya.

Kamerton
sumber
0

Namun solusi lain berhasil untuk kami - setelah mencoba menghapus suo dan hampir semua yang disebutkan di utas ini. Kami memiliki proyek dalam solusi yang menunjukkan versi hantu dari file csproj. Kami menghapus file itu dan jalur kami diperbaiki pada proyek lain yang kami coba tambahkan.

Rondakay
sumber
-1

Jika Anda menjalankan aplikasi web Anda di bawah IIS Lokal, bukan IISExpress, pastikan Anda MENGHITUNG tombol "Buat Direktori Virtual" dengan masuk ke properti proyek. Setelah selesai, lakukan "Solusi Bersih" dan "Buat Ulang Solusi".

Survei Ajinkya
sumber
-1

Menghapus file obj dan bin akan menyelesaikan masalah ...

Mohanad Shamsneh
sumber
-3

Saya tahu ini adalah kalimat lama. Saya baru saja mengalami masalah yang sama. Kami baru-baru ini memigrasi TFS, jadi saya membuat ruang kerja baru untuk memetakan ke server baru dan menyimpan yang lama. Setiap kali saya membuka solusi yang seharusnya menargetkan ruang kerja baru saya, VS selalu mencoba memuat proyek dari direktori pemetaan lama saya, sampai saya menghapus ruang kerja lama saya.

BackToSorrento
sumber
ini tidak benar-benar memberikan bantuan untuk pertanyaan awal
vlad_tepesch
Saya pikir masalah saya memiliki sifat yang sama. Saya memiliki dua ruang kerja, salah satunya sudah tua. Saya bekerja dengan yang baru, dan menciptakan solusi, menambahkan proyek. semuanya baik-baik saja hanya jika saya tidak menutup solusinya. Tetapi jika saya menyimpan solusi, dan mencoba membukanya, VS selalu mencoba memuat proyek dalam solusi dari direktori yang dipetakan di ruang kerja lama saya.
BackToSorrento