プロジェクト全体の名前空間を変更するには?


104

この記事のデモアプリケーションを変更しています: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]を、ここで可能重複してVisual Studioでの変更プロジェクトの名前空間さて、私はプロジェクトの名前空間を変更する方法を知っているが、ファイルシステム上のファイルを移動する方法?(「DemoApp」フォルダを削除します)


4
参考までに、.NETのフォルダ構造と一致する名前空間は必ずしも必要ではありません。必須ではありません。
James Michael Hare

1
ジェームズが言ったように、それは必要ではない。しかし、なぜ私が取り組む必要のあるアプリで誰かが「仕事を終えなかった」のか疑問に思う。
NotMe

1
ファイルの移動について..ええと、カット/ペーストとドラッグ/ドロップは通常、Visual Studio Solution Manager内で機能します。あなたが本当にやろうとしていることに応じて。
NotMe

回答:


124

単純なReplace in Files(Ctrl+ Shift+ H)でほぼうまくいくと思います。単純に置き換えるnamespace DemoAppnamespace MyApp。その後、ソリューションをビルドし、不明な識別子のコンパイルエラーを探します。完全に修飾DemoAppされたものはすべてに変更する必要がありMyAppます。


62
重要; project-propertiesのdefault-namespaceも変更します。これは、resxなどの名前空間を制御します
Marc Gravell

WPFウィンドウを表すXAMLファイルがいくつかあるので、これは機能しません。
Pieter

6
あなたはまた、任意に置換し実行する必要がありますusingから変更する声明using DemoAppusing Myapp
swbandit 2015

5
また、viewsフォルダー内のすべてのweb.configファイルで<add namespace = "OldNameSpace" />の名前を変更します
neo112

@Pieterアプリケーション全体をすべて置き換えてから、Marcの提案に従ってプロパティを更新し、ソリューションを閉じて再度開くことができるはずです。
エリック

153

名前空間がファイルの1つで宣言されている場所に移動します。変更するネームスペースの部分にカーソルを合わせ、を押しF2ます。これにより、すべてのファイルの名前空間の名前が変更されます。少なくとも、私がこの回答をテストするために作成した小さなデモプロジェクトで機能しました。

VSバージョンによっては、ショートカットがCtrl- RCtrl-の場合もありますR


1
どういうわけか私のために動作しません。F2を押しても何も起こりません。
javapowered 2014年

6
@javapoweredの場合、ホットキーはカスタマイズされています。あなたのVSオプションを見てください。今日の私はCTRL-R CTRL-Rです。
エイミー

4
注:私は今でもこの方法を好みますが、[当然のことながら]ビューおよびViews /ディレクトリに含まれるweb.configファイルの参照を置き換えることに失敗しました。それらに注意してください。
Wiseguy、2014年

3
ホットキーの変更に依存しないバージョンの場合は、名前空間名を右クリックして、名前の変更を選択します。
2015

3
残念ながら、新しい名前に.文字を含める場合、これは機能しません。
BotondBalázs2016年


3

Ctrl+ Shift+ H実際のソリューションではありません。

Resharperを使用して、ソリューション内のすべての名前空間定義を変更できます。これは私が以前に試した最良の方法です。

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


2
リシャーパーには本格的な高価なデスクトップマシンが必要
Ivan G.

@IvanG。まあ、多くの商用プロジェクトも本格的な高価な開発者を必要とするので、マシンとR#ライセンスは、より壮大なスキームではそれほど高価ではありません;)この(またはAdamまたはAmyの)メソッドが正しく機能していることを確認する必要がある場合、コードの問題
StuartLC 2017

1
@StuartLC残念ながら、専用のワークスペースと大きなデスクトップの時代は終わりました。私は開発に本当に強力なラップトップを使用し、実質的にそれを殺しているので、時間を重視する人にはお勧めしません。
Ivan G.17年

みんなあなただけの、あなたはそれが無料の試用版をアクティブにインストールします:-)知っ無料で名前を変更するために使用して名前を変更し、あなたが;-)たい場合は、それをアンインストールすることができます
セルチュクErmaya

1

名前空間の変更がすべて確実に行われるように、BareGrepというツールを使用してフォルダー構造を調べました。指定されたファイル構造のファイルを検索できる無料のツールです。


ファイル一致正規表現:(. exe)|(.dll)|(.cache)|(.pdb) 次に一致を反転します。このパターンを繰り返して、他のバイナリなどを除外します。
twobob 14


1

名前空間のリファクタリングにはReSharperを使用できます。30日間無料でお試しいただけます。フォルダ構造ごとに名前空間を変更します。

手順:

1)リファクタリングするプロジェクト/フォルダ/ファイルを右クリックします。

2)ReSharperをインストールしている場合は、[リファクタリング]-> [ネームスペースの調整...]オプションが表示されるので、これをクリックします。

ここに画像の説明を入力してください

選択したすべてのファイルの名前空間が自動的に変更されます。


ありがとう..これを行うことができました。
sgowd

0

私はすべてを試しましたが、本当に機能する解決策を見つけました。それは新しい名前空間名などを備えた独立したソリューションを作成します。

  1. メインフォームで名前空間名を見つけます->右クリック->リファクタリング->名前を変更して新しい名前を選択します。すべてのチェックボックスをオンにして、[OK]をクリックします。

  2. ソリューションエクスプローラで、ソリューション名を新しい名前に変更します。

  3. ソリューションエクスプローラーで、プロジェクト名を新しい名前に変更します。

  4. VSを閉じて、ソリューションフォルダー内のフォルダー(たとえば、総司令官内)を新しい名前に変更します。

  5. .slnファイルで、古い名前を新しい名前に変更します。

  6. 古い.suoファイルを削除する(非表示)

  7. VSを起動してプロジェクトを読み込む

  8. プロジェクト->プロパティ->アセンブリ名とデフォルトの名前空間を新しい名前に変更します。


0

私はそれがかなり遅いことを知っていますが、これからこれを行うことを望んでいる誰にとっても、この答えがいくつかの助けになることを願っています。あなたが持っている場合CodeRush Express無料版を、そして「持っている必要があります」)がインストール、それはプロジェクトの広い名前空間を変更するための簡単な方法を提供しています。変更したい名前空間にカーソルを置くだけで、文字列のsmart tag下に(小さな青いボックス)が表示されnamespaceます。そのボックスをクリックするかCtrl +、キーを押してRenameオプションを表示できます。それを選択してから、プロジェクト全体の名前空間の新しい名前を入力Applyし、新しいダイアログとOKそれをクリックして、変更するプロジェクト内の場所をクリックして選択します。できた!:-)


私の経験では、CodeRush Expressは「必須」ではありません(個人的な意見)。このようなものに便利です。
Maarten 2013年

0

名前空間とソリューション名を変更したいときは、次のように行いました
。1)名前空間を選択して名前を変更することで名前空間を変更し、ソリューション名で同じことを行いました
2)電球をクリックして、古い名前空間のすべてのインスタンスの名前を変更しました
3 )ソリューションからすべてのプロジェクトを削除しました
4)Visual Studioを閉じました
5)Windowsエクスプローラー ですべてのプロジェクトの名前を変更し
ました6)Visual Studioを開いてすべてのプロジェクトを再度追加しました
7)プロパティ内のすべてのプロジェクトの名前空間の名前を変更しました
8)binフォルダーを削除しました(すべてのプロジェクトから)
9)プロジェクトを再度ビルドします

それは何の問題もなく私にとってはうまくいき、私のプロジェクトもソース管理ができました。これらの変更をリモートにプッシュした後はすべて問題ありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.