Giải pháp hiện tại của tôi để đổi tên thư mục dự án là:
- Loại bỏ dự án khỏi giải pháp.
- Đổi tên thư mục bên ngoài Visual Studio.
- Thêm lại dự án vào giải pháp.
Có cách nào tốt hơn?
Giải pháp hiện tại của tôi để đổi tên thư mục dự án là:
Có cách nào tốt hơn?
Câu trả lời:
Người dùng TFS: Nếu bạn đang sử dụng kiểm soát nguồn yêu cầu bạn phải cảnh báo nó trước khi đổi tên tệp / thư mục thì hãy xem câu trả lời này thay vào đó bao gồm các bước bổ sung cần thiết.
Để đổi tên thư mục của dự án , tệp ( .*proj
) và tên hiển thị trong Visual Studio:
.sln
tệp trực tiếp trong một trình soạn thảo khác như Notepad ++ và cập nhật các đường dẫn ở đó. (Bạn có thể cần kiểm tra giải pháp trước trong TFS, v.v.)Ghi chú: Các giải pháp được đề xuất khác liên quan đến việc loại bỏ và sau đó thêm lại dự án vào giải pháp sẽ phá vỡ các tham chiếu dự án.
Nếu bạn thực hiện các bước này thì bạn cũng có thể xem xét đổi tên sau đây cho phù hợp:
Cũng xem xét sửa đổi các giá trị của các thuộc tính lắp ráp sau :
AssemblyProductAttribute
AssemblyDescriptionAttribute
AssemblyTitleAttribute
Có một cách khác để làm điều này, sử dụng các tệp * .sol, * csproj.
Nó sẽ như thế này (liên quan đến tệp * .sol):
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shani.Commands.Impl", "Shani.Commands.Impl\Shani.Commands.Impl.csproj", "{747CFA4B-FC83-419A-858E-5E2DE2B948EE}"
Và chỉ cần thay đổi phần đầu tiên sang diretory mới chẳng hạn:
Impl\Shani.Commands.Impl\Shani.Commands.Impl.csproj
Tất nhiên, đừng quên chuyển toàn bộ dự án vào thư mục đó.
Điều này rất đơn giản trong Visual Studio 2015 (có thể hoạt động trong các phiên bản cũ hơn)
.sln
tệp trong Notepad và thay đổi đường dẫn đến csproj, tức là fu\bar.csproj
→ bar\bar.csproj
.Man, tôi đã đấu tranh với điều này. Thật không may, không có giải pháp một cú nhấp chuột trong Visual Studio, nhưng nếu bạn đang chạy Visual Studio 2012 và dự án của bạn nằm dưới sự kiểm soát nguồn với Team Foundation Server , đây là cách tôi làm cho nó hoạt động, trong khi vẫn giữ lịch sử nguồn:
(Hãy chắc chắn rằng bạn đã đọc bình luận của @ mjv bên dưới, vì anh ấy lưu ý rằng bạn có thể bỏ qua bước 5-10)
Hướng dẫn trên làm việc cho tôi. Nếu nó không phù hợp với bạn, hãy thử và xóa hoàn toàn giải pháp cục bộ của bạn và xóa ánh xạ thư mục trong không gian làm việc của bạn. Khởi động lại Visual Studio chỉ trong trường hợp. Hãy chắc chắn rằng bạn thực sự đã xóa toàn bộ giải pháp khỏi máy tính của bạn. Bây giờ hãy gắn lại ánh xạ giải pháp vào không gian làm việc của bạn và nhận phiên bản mới nhất. Bây giờ hãy thử các bước trên. Điều tương tự áp dụng nếu có sự cố xảy ra trong khi làm theo các bước trên. Chỉ cần xóa giải pháp của bạn cục bộ và nhận nguồn mới nhất và bạn sẽ có một bảng xếp hạng rõ ràng để làm việc.
Nếu bạn vẫn gặp sự cố, hãy đảm bảo rằng bạn chưa thay đổi thủ công trong tệp giải pháp hoặc thử các 'thủ thuật' khác trước khi thử các bước trên. Nếu bạn đã thay đổi một cái gì đó và kiểm tra nó, bạn có thể muốn xem xét thực hiện quay lại điểm ngay trước khi bạn bắt đầu lộn xộn với việc đổi tên dự án.
Tất nhiên, bạn cũng muốn đổi tên dự án, trong Solution Explorer. Bạn có thể làm điều này trước các bước trên, nhưng trong trường hợp đó, hãy đảm bảo bạn kiểm tra thay đổi đó trước khi áp dụng các bước trên. Bạn cũng có thể thực hiện sau đó, nhưng trước tiên hãy đảm bảo bạn làm theo tất cả các bước trên và kiểm tra các thay đổi của bạn trước khi thử đổi tên tên dự án trong Solution Explorer. Tôi không khuyên bạn nên thử trộn các bước trên với đổi tên tên dự án trong Solution Explorer. Nó có thể hoạt động mặc dù, nhưng tôi sẽ khuyên bạn nên thực hiện trong 2 thay đổi riêng biệt.
VS2012
! Lưu ý rằng bạn có thể tránh các bước 5-10 (nghĩa là phải mang lại các thư mục đã đổi tên trong Kiểm soát nguồn), thay vào đó, bạn đóng giải pháp và sau đó đổi tên các thư mục bên trong VS' Source Control Explorer
thay vì Windows Explorer
.
Folder already exists
. Vì vậy, tôi phải đổi tên thư mục một lần nữa WE
sau đó thay đổi nó SCE
, sau đó sao chép các tập tin vào thư mục đó, trước khi nó hoạt động. Vì vậy, hãy theo dõi nhận xét từ mjv ở trên. Tôi cũng không nghĩ về việc cần phải thay đổi tên tệp dự án thực tế (không chỉ trong VS) mà tôi đã làm như sau đó khiến tôi lặp lại một số bước này.
Hiện tại, không. Chà, thực sự bạn có thể nhấp vào nút dự án bị hỏng và trong ngăn thuộc tính tìm thuộc tính 'Đường dẫn', nhấp vào biểu tượng trình duyệt nhỏ và chọn đường dẫn mới.
Võngà :)
Giải pháp đơn giản hơn như sau:
Có bốn bước cần thiết, nhưng bảy khuyến nghị. Vào cuối ngày mặc dù dự án được đổi tên hoàn toàn. Về mặt kỹ thuật, tên thư mục cho dự án không phải khớp với chính dự án, vì vậy ngay cả bước đó là tùy chọn, nhưng có thể gây nhầm lẫn nếu chúng không khớp. Tương tự cho tên lắp ráp và không gian tên.
Trong câu trả lời của andersjanmyr, việc đổi tên dự án trước sẽ dễ dàng hơn.
Ngoài ra, sau khi các bước đó được thực hiện, bạn có thể muốn đổi tên các tham chiếu khác thành tên dự án cũ của mình.
Trong thuộc tính dự án, cập nhật Tên hội và không gian tên mặc định.
Điều này sẽ cập nhật như sau trong tệp dự án ...
<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>
... và sẽ thoát khỏi lỗi "Không gian tên không tương ứng với vị trí tệp, nên là: 'someProjectName'"
Đổi tên không gian tên gốc của bạn (nếu bạn có ReSharper, nhấp chuột phải vào Không gian tên và đi Refactor -> Đổi tên).
Thay đổi tất cả các lần xuất hiện của tên dự án cũ của bạn trong AssociationInfo.cs .
Đối với Visual Studio 2017, bạn có thể sử dụng tiện ích mở rộng Visual Studio của tôi:
Nó sẽ đổi tên dự án trong:
[assembly: InternalsVisibleTo("MyTests")]
. Khi tôi đổi tên MyTests
, nó không đổi tên tham chiếu đó. Một lần nữa, tôi không nghĩ rằng điều này nằm trong tầm nhìn của bạn và thật dễ dàng để giải quyết bằng tay.
Tôi chỉ phải tự làm việc này (sử dụng Visual Studio 2010). Như một số người đã trả lời, bước đơn giản nhất dường như là:
Đối với những người sử dụng Visual Studio + Git và muốn giữ lịch sử tệp (công việc đổi tên cả dự án và / hoặc giải pháp):
Đóng Visual Studio
Trong tệp .gitignore, sao chép tất cả các đường dẫn bỏ qua của dự án bạn muốn đổi tên bằng các phiên bản được đổi tên của các đường dẫn đó.
Sử dụng lệnh di chuyển Git như thế này:
git mv <old_folder_name> <new_folder_name>
Xem tài liệu cho các tùy chọn bổ sung: https://git-scm.com/docs/git-mv
Trong tệp .sln của bạn: Tìm dòng xác định dự án của bạn và thay đổi tên thư mục trong đường dẫn. Dòng này sẽ trông giống như:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"
Mở Visual Studio và nhấp chuột phải vào dự án → Đổi tên
Sau đó, đổi tên các không gian tên.
Tôi đọc rằng ReSharper có một số tùy chọn cho việc này. Nhưng đơn giản tìm / thay thế đã làm công việc cho tôi.
Loại bỏ các đường dẫn .gitignore cũ.
Xem mục 3 trong bài viết được liên kết .
Nó làm việc cho tôi.
Điều gì làm việc cho tôi trong Visual Studio 2017:
Nó nói một cái gì đó như " thêm dự án ". Tôi xây dựng lại mọi thứ và mọi thứ đều tốt để đi.
Dependencies
>> Add reference
>> Chọn dự án mới của bạn )
Tôi đã phải làm điều này rất nhiều lần. Nó thực sự hữu ích để có thể tái sử dụng một dự án hiện có, nhưng có thể đổi tên văn bản trong không gian tên, tệp và thư mục (bao gồm tên tệp / thư mục).
Sử dụng tìm và đệ quy thay thế bắt đầu từ thư mục gốc có nghĩa là việc đổi tên không phá vỡ liên kết đến các dự án trong tệp giải pháp và tham chiếu dự án.
Để kết thúc này, tôi đã tạo ra một dự án để làm việc này. Ứng dụng này cũng cố gắng bỏ qua các thư mục kiểm soát phiên bản, chẳng hạn như .git, .svn và tệp cài đặt .vs. Thêm thông tin trong README.
Một giải pháp đã được chứng minh cho tiện ích mở rộng Visual Studio cho Công cụ dữ liệu dành cho doanh nghiệp thông minh (SSDT-BI 2013):
Nó đã được thử nghiệm 100% và hoạt động hoàn hảo trong trường hợp của tôi.
LƯU Ý: Tôi không thể xác nhận nếu nó hoạt động theo các mẫu dự án khác nhau và các phiên bản Visual Studio khác. Như mọi khi, hãy sao lưu mọi thứ trước đó.
Tôi đã viết một công cụ nhỏ tự động hóa tất cả các bước này. Nó cũng hỗ trợ Subversion bây giờ.
Thông tin về các bản phát hành hiện tại có thể được tìm thấy tại Visual Studio Project Renamer Infos .
Các bản phát hành mới nhất hiện có thể được tải xuống từ Trang Tải xuống Renamer của Dự án Visual Studio .
Phản hồi được nhiều đánh giá cao.
Tôi thường gặp vấn đề tương tự khi đổi tên dự án trong Visual Studio và chỉnh sửa tên thư mục, tên dự án và tệp .sln để thực hiện điều đó. Tôi vừa viết một VBScript kịch bản hoàn thành tất cả điều đó. Bạn phải cẩn thận với các chuỗi bạn chọn để thay thế.
Bạn chỉ cần đặt tệp .vbs trong cùng thư mục với tệp .sln của giải pháp.
' 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
Lưu ý : Bản sửa lỗi này dành cho Visual Studio 2008, nhưng nó sẽ hoạt động ở đây.
.sln
tập tin nằm trong thư mục cha..sln
tệp không. Nhấp chuộtYes ..sln
tệp có cùng tên với thư mục. Không bắt buộc, nhưng nó vẫn duy trì tính nhất quán.)Làm xong.
Khi sử dụng TFS, bước 2 thực sự là đổi tên thư mục trong kiểm soát nguồn và sau đó lấy bản mới nhất trước khi mở lại giải pháp.
Gần đây chúng tôi đã tải lên bản beta của tiện ích mở rộng Visual Studio miễn phí thực hiện công cụ này cho bạn.
Hãy xem Visual Studio Gallery: Gallery Download
Mở .sln trong trình soạn thảo văn bản và trong dòng sau đây thay đổi <FolderName> thành tên thư mục mới Project ("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ricky", "\ .csproj", " {021CC6B0-8CFB-4194-A103-C19AF869D965} "
Các vấn đề tương tự phát sinh khi một dự án mới phải được tạo và bạn muốn có một tên thư mục dự án khác với tên dự án.
Khi bạn tạo một dự án mới, nó sẽ được lưu trữ tại
./path/to/pro/ject/YourProject/YourProject.**proj
Giả sử bạn muốn có nó trực tiếp trong ject
thư mục:
./path/to/pro/ject/YourProject.**proj
Cách giải quyết của tôi để thực hiện điều này là tạo dự án với phần cuối của đường dẫn làm tên của nó, để nó không tạo thêm một thư mục:
./path/to/pro/ject/ject.**proj
Khi bạn đổi tên dự án từ bên trong Visual Studio, bạn sẽ đạt được mục tiêu mà không phải rời khỏi Visual Studio:
./path/to/pro/ject/YourProject.**proj
Nhược điểm của phương pháp này là bạn phải điều chỉnh không gian tên mặc định và tên của nhị phân đầu ra, và bạn phải cập nhật các không gian tên trong tất cả các tệp được bao gồm trong mẫu dự án.
Tôi sử dụng Visual Studio 2013 và TFS 2013.
Tôi đã làm nó như thế này:
Có một cách tiếp cận đơn giản hơn đã được thử nghiệm trong Visual Studio 2013 Update 1 và áp dụng cho các dự án được kết nối với TFS:
Cách đơn giản nhất là đi đến thuộc tính của cửa sổ, thay đổi tên của các không gian tên mặc định và sau đó đổi tên được thực hiện.
Tôi đã làm như sau:
<Tạo bản sao lưu của toàn bộ thư mục>
Đổi tên dự án từ trong Visual Studio 2013 (tùy chọn / không cần thiết).
Xuất dự án dưới dạng mẫu.
Đóng giải pháp.
Mở lại giải pháp
Tạo một dự án từ mẫu đã lưu và sử dụng tên bạn thích.
Xóa khỏi giải pháp thám hiểm dự án trước đó.
Tại thời điểm này, tôi đã cố gắng biên dịch giải pháp mới và để làm như vậy, tôi phải sao chép thủ công một số tài nguyên và tiêu đề vào thư mục dự án mới từ thư mục dự án cũ. Làm điều này cho đến khi nó biên dịch mà không có lỗi. Bây giờ dự án mới này đã lưu tệp ".exe" vào thư mục trước đó. *
Vì vậy ->
Truy cập Windows Explorer và sao chép thủ công tệp giải pháp từ thư mục dự án cũ sang thư mục dự án mới.
Đóng giải pháp và mở giải pháp từ bên trong dự án mới.
Thay đổi cấu hình trở lại (x64) nếu cần.
Xóa thư mục của dự án với tên cũ khỏi thư mục của giải pháp.