簡體   English   中英

如何更改整個項目的命名空間?

[英]how to change namespace of entire project?

我正在修改本文中的演示應用程序: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

我需要更新所有文件以使用我的命名空間,例如現在位於此處的文件:

MySolution\MyApp\DemoApp\ViewModel\MainWindowViewModel.cs

正在使用這樣的命名空間:

namespace DemoApp.ViewModel
{
/// <summary>
/// The ViewModel for the application's main window.
/// </summary>
public class MainWindowViewModel : WorkspaceViewModel

我需要將文件移至此處(刪除 DemoApp 文件夾):

MySolution\MyApp\ViewModel\MainWindowViewModel.cs

並使用正確的命名空間:

namespace MyApp.ViewModel
{
....

如何在 visual studio 2010 中做到這一點?

在這里更新ok 是可能的 duplicate Change Project Namespace in Visual Studio現在我知道如何更改項目的命名空間,但是如何在文件系統上移動文件? (擺脫“DemoApp”文件夾)

轉到命名空間在您的文件之一中聲明的某個地方。 將光標放在要更改的命名空間部分,然后按F2 這應該重命名每個文件中的命名空間。 至少,它在我為測試這個答案而創建的小演示項目中有效!

根據您的 VS 版本,快捷方式也可能是Ctrl - RCtrl - R

我想一個簡單的替換文件( Ctrl + Shift + H )就可以解決問題; 只需將namespace DemoApp替換為namespace MyApp 之后,構建解決方案並查找未知標識符的編譯錯誤。 任何完全合格的DemoApp都需要更改為MyApp

只需右鍵單擊解決方案,轉到屬性,更改“應用程序”部分下的“默認命名空間”。

在此處輸入圖片說明

Ctrl + Shift + H不是真正的解決方案。

您可以使用 Resharper 更改解決方案中的所有命名空間定義。 這是我之前嘗試過的最好方法。

https://www.jetbrains.com/resharper/features/code_refactoring.html

您可以使用CTRL + RCTRL + R或對於復雜的命名空間更改,請使用此工具https://marketplace.visualstudio.com/items?itemName=vs-publisher-599079.FixNamespace

您可以使用 ReSharper 進行命名空間重構。 它將提供 30 天的免費試用。 它將根據文件夾結構更改命名空間。

腳步:

  1. 右鍵單擊要重構的項目/文件夾/文件。

  2. 如果您已經安裝了 ReSharper,那么您將獲得一個選項 Refactor->Adjust Namespaces.... 所以點擊這個。

在此處輸入圖片說明

它將自動更改所有選定文件的名稱空間。

我使用名為 BareGrep 的工具檢查了文件夾結構,以確保我獲得了所有命名空間更改。 它是一個免費工具,可讓您搜索指定文件結構中的文件。

我嘗試了一切,但我找到了一個真正有效的解決方案。 它使用新的命名空間名稱等創建獨立的解決方案。

  1. 在主窗體中找到命名空間名稱 -> 右鍵單擊​​ -> 重構 -> 重命名並選擇一個新名稱。 選中所有框並單擊“確定”。

  2. 在解決方案資源管理器中,將解決方案名稱重命名為新名稱。

  3. 在解決方案資源管理器中,將項目名稱重命名為新名稱。

  4. 關閉 VS 並將解決方案文件夾中的文件夾(例如總指揮官)重命名為新名稱。

  5. 在 .sln 文件中,將舊名稱重命名為新名稱。

  6. 刪除舊的 .suo 文件(隱藏)

  7. 啟動VS並加載項目

  8. 項目 -> 屬性 -> 將程序集名稱和默認命名空間更改為新名稱。

我知道這已經很晚了,但是對於從現在開始想要這樣做的任何人,我希望這個答案證明會有所幫助。 如果您安裝了CodeRush Express免費版,並且是“必備”),它提供了一種更改項目范圍命名空間的簡單方法。 您只需將光標放在要更改的命名空間上,它就會在namespace字符串下方顯示一個smart tag (一個小藍框)。 您可以單擊該框或按Ctrl +鍵以查看Rename選項。 選擇它,然后為項目范圍的命名空間輸入新名稱,單擊Apply並在新對話框中選擇您希望它更改的項目位置,然后OK 完畢! :-)

當我想更改命名空間和解決方案名稱時,我執行了以下操作:
1)通過選擇命名空間並重命名它來更改命名空間,我對解決方案名稱也做了同樣的事情
2)單擊燈泡並重命名舊命名空間的所有實例
3)從解決方案中刪除所有項目
4)關閉視覺工作室
5)重命名Windows資源管理器中的所有項目
6)打開visual studio並再次添加所有項目
7) 在所有項目的屬性中重命名命名空間
8) 刪除 bin 文件夾(來自所有項目)
9)再次構建項目

這對我來說沒有任何問題,而且我的項目也有源代碼控制。 將這些更改推送到遙控器后一切正常。

在 asp.net 中要做的更多,在另一個命名空間下完全運行。

  • 復制您的源文件夾並將其重命名為您的新項目名稱。
  • 打開它並按 Ctrl + H 全部替換,並確保包含所有替換所有內容
  • 在您的項目名稱上按 F2 並將其重命名為您的新項目名稱
  • 轉到您的項目屬性並進行調整,因為一切都已消失,您需要創建一個新的調試配置文件來創建
  • 所有依賴項現在都有一個感嘆號 - 重新啟動 Visual Studio
  • 清理您的解決方案並運行它,它應該可以工作:)

重命名項目時,這是一個簡單的過程

  • 重命名您的項目
  • 編輯項目屬性以具有新的默認命名空間值
  • 查找/替換解決方案中的所有“命名空間 OLD”和“使用 OLD”語句
  • 在文本編輯器中手動編輯 .sln 文件,並將目錄結構中的舊項目名稱替換為新項目名稱。
  • VS提示時重新加載解決方案

在 VS 2019 中,您可以使用以下步驟重命名命名空間

  1. 將光標放在命名空間名稱中。
  2. 按 Ctrl+。 觸發快速操作和重構菜單。
  3. 選擇將命名空間更改為 。 有關更多信息,請參閱Microsoft 文檔

任何在VS Code上嘗試的人,使用典型的Rename選項,這將更新所有命名空間的使用,如果項目名稱發生更改,您將不得不進入每個.csproj並替換新的項目名稱。

不要忘記運行dotnet restore ,然后它才會停止顯示構建問題。

Visual Studio 2022 有一個新功能同步命名空間。

您需要在解決方案資源管理器中右鍵單擊項目或解決方案。

在此處輸入圖像描述

如果您有 C# 個文件已在文件夾之間移動並且命名空間不同步,則此功能應該派上用場,可以根據文件為每個文件設置正確的命名空間。 格式。

當您執行遺留代碼庫的遷移時,這將特別有用。

參考資料https://nitinmanju.medium.com/de-clutter-namespaces-using-c-10-60822af79336

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM