Solusi saya saat ini untuk mengganti nama folder proyek adalah:
- Hapus proyek dari solusi.
- Ganti nama folder di luar Visual Studio.
- Tambahkan kembali proyek ke solusinya.
Apakah ada cara yang lebih baik?
Solusi saya saat ini untuk mengganti nama folder proyek adalah:
Apakah ada cara yang lebih baik?
Jawaban:
Pengguna TFS: Jika Anda menggunakan kontrol sumber yang mengharuskan Anda untuk memperingatkannya sebelum mengganti nama file / folder Anda, lihat jawaban ini sebagai gantinya yang mencakup langkah-langkah tambahan yang diperlukan.
Untuk mengganti nama folder proyek , file ( .*proj
) dan nama tampilan di Visual Studio:
.sln
file langsung di editor lain seperti Notepad ++ dan perbarui jalur di sana sebagai gantinya. (Anda mungkin perlu memeriksa solusi terlebih dahulu di TFS, dll.)Catatan: Solusi lain yang disarankan yang melibatkan penghapusan dan kemudian menambahkan kembali proyek ke solusi akan mematahkan referensi proyek.
Jika Anda melakukan langkah-langkah ini maka Anda mungkin juga mempertimbangkan untuk mengganti nama yang cocok dengan ini:
Juga pertimbangkan untuk mengubah nilai atribut rakitan berikut :
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
Ada cara lain untuk melakukan ini, menggunakan file * .sol, * csproj.
Akan seperti ini (relatif terhadap file * .sol):
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"
Dan ubah saja bagian pertama ke direktori baru misalnya:
Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj
Tentu saja, jangan lupa untuk memindahkan seluruh proyek ke direktori itu.
Ini mudah di Visual Studio 2015 (mungkin bekerja di versi yang lebih lama)
.sln
file dalam Notepad , dan ubah path ke csproj, yaitu, fu\bar.csproj
→ bar\bar.csproj
.Man, sudahkah aku berjuang dengan ini. Sayangnya tidak ada solusi satu klik di Visual Studio, tetapi jika Anda menjalankan Visual Studio 2012 dan proyek Anda berada di bawah kendali sumber dengan Team Foundation Server , berikut adalah cara saya membuatnya bekerja, sambil menjaga riwayat sumber:
(Pastikan Anda membaca komentar @ mjv di bawah ini, karena ia mencatat bahwa Anda dapat melewati langkah 5-10)
Panduan di atas bekerja untuk saya. Jika itu tidak berhasil untuk Anda, coba dan hapus solusi lokal Anda sepenuhnya, dan hapus pemetaan folder di ruang kerja Anda. Mulai ulang Visual Studio untuk berjaga-jaga. Pastikan Anda benar-benar menghapus seluruh solusi dari komputer Anda. Sekarang baca pemetaan solusi ke ruang kerja Anda dan dapatkan versi terbaru. Sekarang coba langkah-langkah di atas. Hal yang sama berlaku jika terjadi kesalahan saat mengikuti langkah-langkah di atas. Hapus saja solusi Anda secara lokal dan dapatkan sumber terbaru, dan Anda akan siap untuk mengerjakannya.
Jika Anda masih mengalami masalah, pastikan Anda belum mengubah apa pun secara manual di file solusi, atau mencoba 'trik' lain sebelum mencoba langkah-langkah di atas. Jika Anda telah mengubah sesuatu dan memeriksanya, Anda mungkin ingin mempertimbangkan untuk melakukan rollback langsung ke titik tepat sebelum Anda mulai mengacaukan penggantian nama proyek.
Tentu saja, Anda juga ingin mengubah nama proyek itu sendiri, di Solution Explorer. Anda dapat melakukan ini sebelum langkah-langkah di atas, tetapi dalam hal ini, pastikan Anda memeriksa perubahan itu sebelum menerapkan langkah-langkah di atas. Anda juga dapat melakukannya setelah itu, tetapi pastikan Anda mengikuti semua langkah di atas terlebih dahulu, dan periksa perubahan Anda sebelum mencoba mengubah nama proyek di Solution Explorer. Saya tidak menyarankan mencoba untuk mencampur langkah-langkah di atas dengan mengganti nama nama proyek di Solution Explorer. Ini mungkin bekerja, tetapi saya akan merekomendasikan melakukannya dalam 2 perubahan terpisah.
VS2012
! Perhatikan bahwa Anda dapat menghindari langkah 5-10 (yaitu harus membawa kembali folder yang diubah namanya dalam Kontrol Sumber) jika, alih-alih, Anda menutup solusinya dan kemudian mengganti nama folder tersebut VS' Source Control Explorer
daripada Windows Explorer
.
Folder already exists
. Jadi saya harus mengganti nama folder lagi WE
lalu mengubahnya SCE
, lalu salin file ke folder itu, sebelum berhasil. Jadi ikuti komentar dari mjv di atas. Saya juga tidak berpikir tentang perlunya mengubah nama file proyek yang sebenarnya (tidak hanya dalam VS) yang saya lakukan sebagai renungan membuat saya mengulangi beberapa langkah ini.
Saat ini, tidak. Sebenarnya, Anda dapat mengklik simpul proyek yang rusak dan di panel properti cari properti 'Path', klik ikon browse kecil, dan pilih jalur baru.
Voila :)
Solusi yang lebih sederhana adalah sebagai berikut:
Ada empat langkah yang diperlukan, tetapi tujuh direkomendasikan. Namun pada akhirnya proyek tersebut diganti nama sepenuhnya. Secara teknis, nama folder untuk proyek tidak harus cocok dengan proyek itu sendiri, jadi meskipun langkah itu opsional, tetapi dapat membingungkan jika mereka tidak cocok. Hal yang sama untuk nama assembly dan namespace.
Dalam jawaban andersjanmyr, lebih mudah untuk mengubah nama proyek terlebih dahulu.
Juga, setelah langkah-langkah tersebut dilakukan, Anda mungkin ingin mengganti nama referensi lain dengan nama proyek lama Anda.
Di properti proyek, perbarui Nama Majelis dan Namespace Default.
Ini akan memperbarui yang berikut dalam file proyek ...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
... dan akan menghilangkan kesalahan "Namespace tidak sesuai dengan lokasi file, seharusnya: 'SomeProjectName'"
Ganti nama root namespace Anda (jika Anda memiliki ReSharper klik kanan Namespace dan pergi Refactor -> Rename).
Ubah semua kemunculan nama proyek lama Anda di AssemblyInfo.cs .
Untuk Visual Studio 2017 Anda dapat menggunakan ekstensi Visual Studio saya:
Ini akan mengubah nama proyek di:
[assembly: InternalsVisibleTo("MyTests")]
. Ketika saya mengganti nama MyTests
, itu tidak mengganti nama referensi itu. Sekali lagi, saya tidak berpikir ini berada di bawah lingkup Anda dan mudah untuk diselesaikan secara manual.
Saya hanya harus melakukan ini sendiri (menggunakan Visual Studio 2010). Seperti yang dijawab oleh beberapa orang, langkah paling sederhana adalah:
Bagi mereka yang menggunakan Visual Studio + Git dan ingin menyimpan riwayat file (bekerja menamai kembali proyek dan / atau solusi):
Tutup Visual Studio
Dalam file .gitignore, duplikat semua jalur abaikan proyek yang ingin Anda ganti namanya dengan versi yang diubah namanya dari jalur tersebut.
Gunakan perintah Git move seperti ini:
git mv <old_folder_name> <new_folder_name>
Lihat dokumentasi untuk opsi tambahan: https://git-scm.com/docs/git-mv
Di file .sln Anda: Temukan baris yang mendefinisikan proyek Anda dan ubah nama folder di jalur. Baris tersebut akan terlihat seperti:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"
Buka Visual Studio, dan klik kanan pada proyek → Ganti nama
Setelah itu, ganti nama ruang nama.
Saya membaca bahwa ReSharper memiliki beberapa opsi untuk ini. Tetapi mencari / mengganti yang sederhana berhasil bagi saya.
Hapus jalur .gitignore lama.
Lihat item 3 di artikel yang ditautkan .
Ini berhasil untuk saya.
Apa yang berhasil bagi saya di Visual Studio 2017:
Itu mengatakan sesuatu seperti " menambahkan kembali proyek ". Saya membangun kembali semuanya dan semuanya baik-baik saja.
Dependencies
>> Add reference
>> Pilih proyek baru Anda )
Saya harus melakukan ini berkali-kali. Sangat berguna untuk dapat menggunakan kembali proyek yang sudah ada, tetapi dapat mengubah nama teks dalam ruang nama, file, dan folder (termasuk nama file / direktori).
Menggunakan pencarian dan penggantian rekursif yang dimulai pada folder root berarti penggantian nama tidak memutus tautan ke proyek dalam file solusi dan referensi proyek.
Untuk tujuan ini, saya telah membuat proyek untuk melakukan ini. Aplikasi ini juga berupaya untuk mengabaikan folder kontrol versi seperti .git, .svn dan file pengaturan .vs. Informasi lebih lanjut ada di README.
Solusi yang terbukti untuk ekstensi Visual Studio untuk Alat Data untuk Intelijen Bisnis (SSDT-BI 2013):
Itu diuji 100% dan bekerja dengan sempurna dalam kasus saya.
CATATAN: Saya tidak dapat mengonfirmasi apakah itu bekerja di bawah templat proyek yang berbeda dan versi Visual Studio lainnya. Seperti biasa, lakukan pencadangan semuanya sebelumnya.
Saya telah menulis alat kecil yang mengotomatiskan semua langkah ini. Ini juga mendukung Subversion untuk saat ini.
Informasi tentang rilis saat ini dapat ditemukan di Visual Studio Project Renamer Infos .
Rilis terbaru sekarang dapat diunduh dari Halaman Unduh Visual Studio Project Renamer .
Umpan balik sangat dihargai.
Saya sering memiliki masalah yang sama untuk mengubah nama proyek di Visual Studio dan mengedit nama folder, nama proyek, dan file .sln untuk mencapai itu. Saya baru saja menulis skrip VBScript yang menyelesaikan semua itu. Anda harus berhati-hati dengan string yang Anda pilih untuk diganti.
Anda hanya perlu meletakkan file .vbs di direktori yang sama dengan file .sln dari solusinya.
' Script parameters'
Solution = "Rename_Visual_Studio_Project" '.sln'
Project = "Rename_Visual_Studio_Project" '.csproj'
NewProject = "SUCCESS"
Const ForReading = 1
Const ForWriting = 2
Set objFso = CreateObject("Scripting.FileSystemObject")
scriptDirr = objFso.GetParentFolderName(wscript.ScriptFullName)
' Rename the all project references in the .sln file'
Set objFile = objFso.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForReading)
fileText = objFile.ReadAll
newFileText = Replace(fileText, Project, NewProject)
Set objFile = objFSO.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForWriting)
objFile.WriteLine(newFileText)
objFile.Close
' Rename the .csproj file'
objFso.MoveFile scriptDirr + "\" + Project + "\" + Project + ".csproj", scriptDirr + "\" + Project + "\" + NewProject + ".csproj"
' Rename the folder of the .csproj file'
objFso.MoveFolder scriptDirr + "\" + Project, scriptDirr + "\" + NewProject
Catatan : Perbaikan ini untuk Visual Studio 2008, tetapi harus bekerja di sini.
.sln
file yang terletak di folder induk..sln
file. Klik Yes..sln
file memiliki nama yang sama dengan folder. Tidak diperlukan, tetapi tetap konsisten.)Selesai
Saat menggunakan TFS, langkah 2 sebenarnya adalah mengubah nama folder di kontrol sumber dan kemudian mendapatkan yang terbaru sebelum membuka kembali solusi.
Kami baru-baru ini mengunggah beta dari ekstensi Visual Studio gratis yang melakukan hal ini untuk Anda.
Lihat di Visual Studio Gallery: Download Galeri
Buka .sln dalam editor teks, dan pada baris berikut ubah <FolderName> ke Project name folder baru Anda ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\ .csproj", " {021CC6B0-8CFB-4194-A103-C19AF869D965} "
Setelah mengubah nama folder, buka file .sln di Notepad dan ubah jalur ke jalur baru.
Masalah serupa muncul ketika proyek baru harus dibuat, dan Anda ingin nama folder proyek yang berbeda dari nama proyek.
Ketika Anda membuat proyek baru, itu disimpan di
./path/to/pro/ject/YourProject/YourProject.**proj
Anggap Anda ingin memilikinya secara langsung di ject
folder:
./path/to/pro/ject/YourProject.**proj
Solusi saya untuk menyelesaikan ini adalah membuat proyek dengan bagian terakhir dari jalur sebagai namanya, sehingga tidak membuat direktori tambahan:
./path/to/pro/ject/ject.**proj
Saat Anda sekarang mengganti nama proyek dari dalam Visual Studio, Anda mencapai tujuan tanpa harus meninggalkan Visual Studio:
./path/to/pro/ject/YourProject.**proj
Kelemahan dari pendekatan ini adalah Anda harus menyesuaikan namespace default dan nama biner Output, dan Anda harus memperbarui namespaces di semua file yang termasuk dalam template proyek.
Saya menggunakan Visual Studio 2013 dan TFS 2013.
Saya melakukannya seperti ini:
Ada pendekatan yang lebih sederhana yang diuji dalam Visual Studio 2013 Pembaruan 1 dan berlaku untuk proyek-proyek yang terhubung dengan TFS:
Cara paling sederhana adalah pergi ke properti jendela, ubah nama ruang nama default, dan kemudian ganti nama selesai.
Saya melakukan yang berikut:
<Buat cadangan seluruh folder>
Ganti nama proyek dari dalam Visual Studio 2013 (opsional / tidak diperlukan).
Ekspor proyek sebagai templat.
Tutup solusinya.
Buka kembali solusinya
Buat proyek dari template yang disimpan dan gunakan nama yang Anda suka.
Hapus dari penjelajah solusi proyek sebelumnya.
Pada titik ini saya mencoba untuk mengkompilasi solusi baru, dan untuk melakukannya, saya harus secara manual menyalin beberapa sumber daya dan header ke folder proyek baru dari folder proyek lama. Lakukan ini sampai kompilasi tanpa kesalahan. Sekarang proyek baru ini menyelamatkan " .exe" ke folder sebelumnya. *
Jadi ->
Buka Windows Explorer dan secara manual salin file solusi dari folder proyek lama ke folder proyek baru.
Tutup solusinya, dan buka solusinya dari dalam proyek baru.
Mengubah konfigurasi kembali ke (x64) jika perlu.
Hapus folder proyek dengan nama lama dari folder solusi.