Visual Studio 内からプロジェクト フォルダーの名前を変更するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/211241

質問

プロジェクトフォルダーの名前を変更するための私の現在の解決策は次のとおりです。

  • プロジェクトをソリューションから削除します。
  • Visual Studio の外部でフォルダーの名前を変更します。
  • プロジェクトをソリューションに再度追加します。

もっと良い方法はありますか?

役に立ちましたか?

解決

  

TFSユーザー:ファイル/フォルダーの名前を変更する前に警告する必要があるソース管理を使用している場合は、 代わりにこの回答 が必要な追加手順を説明しています。


Visual Studioでプロジェクトのフォルダーファイル。* proj )および表示名の名前を変更するには:

  • ソリューションを閉じます。
  • Visual Studioの外部でフォルダーの名前を変更します。 (ソース管理を使用している場合はTFSで名前を変更します)
  • 警告を無視してソリューションを開きます(ソース管理からプロジェクトをロードするよう求められた場合は「いいえ」と答えます)。
  • すべての unavailable プロジェクトを通過して...
    • プロジェクトの[プロパティ]ウィンドウを開きます(プロジェクトを強調表示して、 Alt + Enter または F4 を押します。または>プロパティを右クリックします)。
    • プロパティ「ファイルパス」を新しい場所に設定します。
      • プロパティが編集可能でない場合(VS2012の場合)、 .sln ファイルをNotepad ++などの別のエディターで直接開き、代わりにパスを更新します。 (TFSなどで最初にソリューションをチェックアウトする必要がある場合があります。)
    • プロジェクトを
    • リロード-右クリック>プロジェクトをリロードします。
    • プロジェクトの表示名を変更するには、プロジェクトを強調表示して F2 を押すか、右クリック> 名前の変更

注:プロジェクトを削除してからソリューションに再度追加することを含む他の推奨ソリューションは、プロジェクト参照を破壊します。

これらの手順を実行する場合、次の名前を一致するように変更することも検討してください。

  1. アセンブリ
  2. デフォルト/ルート名前空間
  3. 既存のファイルのネームスペース(Visual StudioのリファクタリングツールまたはReSharperの一貫性のないネームスペースツールを使用)

また、次のアセンブリ属性の値を変更することも検討してください。

  1. AssemblyProductAttribute
  2. AssemblyDescriptionAttribute
  3. AssemblyTitleAttribute

他のヒント

*。sol、* csprojファイルを使用して、これを行う別の方法があります。

  1. ソリューションファイルを開く
  2. 変更する* .csprojを検索
  3. 次のようになります(* .solファイルに対して):

    Project(" {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")=" Shani.Commands.Impl&quot ;," Shani.Commands.Impl \ Shani.Commands.Impl .csproj"、" {747CFA4B-FC83-419A-858E-5E2DE2B948EE}"

  4. 次の例のように、最初の部分を新しいディレクトリに変更します。

    Impl \ Shani.Commands.Impl \ Shani.Commands.Impl.csproj

  5. もちろん、プロジェクト全体をそのディレクトリに移動することを忘れないでください

楽しんでください。

これはVS 2015では簡単です(おそらく古いバージョンでも動作します)

  1. ソリューションエクスプローラーで、メインソリューション>を右クリックします。名前の変更
  2. ソリューションエクスプローラーで、 project(ソリューションの下)>を右クリックします。名前の変更
  3. ソリューションエクスプローラーで、[プロパティ> アプリケーションタブに移動]をダブルクリックするか、右クリックして、アセンブリ名 Default namespace の名前を一致するように変更します。
  4. 名前空間の名前も変更する場合は、クラスファイルの1つを開きます。 namespace>を右クリックします名前を変更... これにより、プロジェクト全体で名前空間へのすべての参照が検索および置換されます。
  5. プロジェクトを閉じる> project folder の名前を変更します。
  6. メモ帳で .sln ファイルを編集し、cjprojへのパスを変更します。すなわち、 fu \ bar.csproj-> bar \ bar.csproj

男、私はこれに苦労しましたか。残念ながら、Visual Studioにはワンクリックソリューションはありませんが、 Visual Studio 2012 を実行していて、プロジェクトが Team Foundation Server でソース管理下にある場合、ここにありますソース履歴を保持しながら、どのように動作させたか:

(手順5-10をスキップできることに注意してくださいので、以下の@mjvのコメントを必ずお読みください)

  1. すべての変更をチェックインしたことを確認し、保留中の変更がないようにします。
  2. ソリューションからプロジェクトを削除するには、右クリックして[削除]を選択します。
  3. Windowsエクスプローラーで、プロジェクトフォルダーの名前を変更します。
  4. Visual Studioに戻り、ソリューションエクスプローラーでソリューションを右クリックして、追加->を選択します。 既存のプロジェクト。手順2で削除したプロジェクトのプロジェクトファイルを選択します。このファイルは、名前を変更したフォルダーにあります。
  5. プロジェクトはソリューションに戻りましたが、プロジェクトはソース管理に追加されていないようです。これを修正するには、ソース管理エクスプローラーを開きます。
  6. ステップ3で名前を変更した、ディスク上のプロジェクトフォルダーに対応するソース管理エクスプローラーでプロジェクトフォルダーを見つけます。
  7. ソース管理エクスプローラーでフォルダーの名前を変更して、ディスク上のプロジェクトフォルダーと同じ名前にします。
  8. 今、保留中の変更を見てみましょう。ソリューションファイルを変更し、プロジェクトフォルダーの名前を変更する必要があります。
  9. 再構築を行い、すべてが正しくコンパイルされることを確認します。名前を変更したプロジェクトへのプロジェクト間参照がある場合は、それを参照した個々のプロジェクトに再度追加する必要があります。
  10. これで準備は完了です。行ってすべてをチェックインします。

上記のガイドは私に役立ちました。うまくいかない場合は、ローカルソリューションを完全に削除して、ワークスペースのフォルダーマッピングを削除してください。念のためVisual Studioを再起動してください。実際にコンピュータからソリューション全体を削除したことを確認してください。ここで、ワークスペースへのソリューションマッピングを読み直して、最新バージョンを取得します。次に、上記の手順を試してください。上記の手順を実行中に何か問題が発生した場合も同様です。ソリューションをローカルで削除して最新のソースを取得するだけで、作業用のスレートがきれいになります。

まだ問題が解決しない場合は、上記の手順を試す前に、ソリューションファイルで手動で何も変更していないこと、または他の「トリック」を試したことを確認してください。何かを変更してチェックインした場合は、プロジェクトの名前変更をいじり始めた直前までロールバックすることを検討することをお勧めします。

もちろん、ソリューションエクスプローラーでプロジェクト自体の名前を変更することもできます。上記の手順の前にこれを行うことができますが、その場合は、上記の手順を適用する前に必ずその変更をチェックインしてください。後で行うこともできますが、必ず上記のすべての手順を最初に実行し、ソリューションエクスプローラーでプロジェクト名を変更する前に変更を確認してください。ソリューションエクスプローラーで上記の手順とプロジェクト名の変更を組み合わせることはお勧めしません。ただし、動作する可能性がありますが、2つの個別の変更セットで実行することをお勧めします。

現在のところ、いいえ。実際には、壊れたプロジェクト ノードをクリックし、プロパティ ペインでプロパティ「パス」を探し、小さな参照アイコンをクリックして新しいパスを選択します。

出来上がり:)

より簡単な解決策は次のとおりです。

  1. プロジェクトを右クリックして名前を変更します。
  2. (オプション)プロジェクトのプロパティ設定を開き、アセンブリ名(およびオプションでデフォルトのネームスペース)を変更して、新しいプロジェクト名を使用します。
  3. (オプション)ソースファイルで名前空間名を選択し、右クリックして[リファクタリング\名前変更]を選択し、名前空間を新しいプロジェクト名にグローバルに名前変更します。
  4. (オプション)AssemblyInfo.csファイルを開き、アセンブリ名を変更して一致させます。
  5. ソリューションを保存して閉じます。
  6. Windowsエクスプローラーを使用して、プロジェクトフォルダーの名前を新しい名前に変更します。
  7. テキストエディターでSLNファイルを開き、プロジェクトパスへの参照を見つけて、新しいフォルダー名を使用するように変更します。

必要な手順は4つありますが、7つをお勧めします。プロジェクトの名前は完全に変更されますが、一日の終わりに。技術的には、プロジェクトのフォルダー名はプロジェクト自体と一致する必要はありません。そのため、その手順もオプションですが、一致しない場合は混乱する可能性があります。アセンブリ名と名前空間名についても同じです。

andersjanmyrの答えでは、最初にプロジェクトの名前を変更する方が簡単です。

  1. プロジェクトの名前を変更します。
  2. ソリューションを閉じます(保存します)。
  3. Visual Studioの外部でフォルダーの名前を変更します。
  4. 警告を無視してソリューションを開きます。
  5. 利用できないすべてのプロジェクトを調べて、「ファイルパス」プロパティをプロジェクトファイルの新しい場所、つまりsomeproject.csprojに設定します
  6. プロジェクトをリロードします。

また、これらの手順を実行した後、他の参照の名前を古いプロジェクト名に変更することもできます。

プロジェクトのプロパティで、アセンブリ名とデフォルト名前空間を更新します。 これにより、プロジェクトファイルの以下が更新されます...

<RootNamespace>SomeProjectName</RootNamespace>
<AssemblyName>SomeProjectName</AssemblyName>

...そしてエラーを取り除きます&quot;名前空間はファイルの場所に対応していません、 'SomeProjectName'&quot;

ルートネームスペースの名前を変更します(リシャーパーがある場合は、ネームスペースを右クリックして[リファクタリング]-&gt; [名前変更]を選択します)。

AssemblyInfo.csの古いプロジェクト名のすべての出現を変更します

VS2017には、Visual Studio拡張機能を使用できます

ダウンロード

プロジェクトの名前を変更します:

  • プロジェクトの場所フォルダー
  • ソリューションファイル
  • 他のプロジェクトの参照
  • アセンブリ名、情報
  • デフォルトの名前空間

これを自分で行う必要がありました(VS2010を使用)。一部の人々が答えているように、最も簡単なステップは次のように思われます:

  1. VSプロジェクトを閉じます。
  2. .slnファイルを開き、各.csprojオカレンスのプロジェクトディレクトリプレフィックスの名前を変更します。
  3. .slnファイルを保存
  4. .slnファイルの変更に合わせて、ハードドライブ上の実際のプロジェクトフォルダディレクトリの名前を変更します。
  5. .slnを開き(VSで)、再構築します

の項目3を参照リンクされた記事。

  1. ソリューションとIDEを閉じます。
  2. エクスプローラー:ディレクトリ名を新しい名前に変更します。
  3. エクスプローラー:テキストエディターで.slnファイルを開きます。
  4. ディレクトリ名を新しい名前に変更して保存します。
  5. IDEを再起動し、自動的に起動しない場合は、[ファイル]、[最近使用したファイル]メニューからソリューションを開きます。
  6. ソリューションエクスプローラーのプロジェクトフォルダーをクリックし、下部のプロパティでパスプロパティを確認します。これで、新しいプロジェクトフォルダーを参照するようになります。

それは私のために働いた。

ビジネスインテリジェンスのデータツール用のVisual Studio拡張機能の実証済みソリューション(SSDT-BI 2013):

  1. プロジェクトフォルダを新しい場所に移動します(まだ名前を変更しないでください)
  2. ソリューションエクスプローラーで、プロジェクト/ソリューションの名前を変更します。
  3. 新しく名前を変更したプロジェクトを閉じます(保存します)。
  4. プロジェクトのフォルダーと.slnファイルの名前を変更します。
  5. テキストエディタを使用して、新しく名前を変更したプロジェクトソリューションファイル(.sln)を開きます(メモ帳++を使用しました)
  6. 6行目には、&quot; Project {fdjfksdjk4387!...} =&quot; OLDPROJECT&quot;、&quot; OLDFOLDER \ OLDPROJECT.rptproj&quot;が表示されます。手順4で使用した新しい名前ですべての名前を変更します(つまり... ...
  7. それだけです!

100%テストし、私のケースで問題なく動作しました。

注:Visual Studioバージョンの異なるプロジェクトテンプレートで動作するかどうかは確認できません。いつものように、事前にすべてをバックアップしてください。

Visual Studio + gitを使用していて、ファイルの履歴を保持したい場合(プロジェクトまたはソリューション、あるいはその両方の名前を変更する作業):

1)Visual Studioを閉じます

2).gitignoreファイルの複製で、名前を変更するプロジェクトのすべてのパスを、それらのパスの名前を変更したバージョンで複製します。

3)git moveコマンドを次のように使用します:

git mv <old_folder_name> <new_folder_name>

追加オプションについては、ドキュメントを参照してください: https://git-scm.com/docs/git -mv

4).slnファイルで:プロジェクトを定義している行を見つけ、pathのフォルダー名を変更します。行は次のようになります。

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "<Project name>", "<path-to-project>\<project>.csproj"

5)Visual Studioを開き、プロジェクトを右クリックして-&gt;名前を変更

6)その後、名前空間の名前を変更します。 再シャーパーにはこのためのオプションがいくつかあると読みました。 しかし、単純な検索/置換が仕事をしてくれました。

7)古い.gitignoreパスを削除する

@andersjanmyrの解決策:Alt + Enterを押して、使用できないプロジェクトのプロパティページを表示し、「ファイルパス」を設定します。そこの財産。 (VS2008で)使用できないプロジェクトのright-click_context-menuで使用できないためです。

これらすべての手順を自動化する小さなツールを作成しました。現時点ではSubversionもサポートしています。

現在のリリースに関する情報は、 Visual Studio Project Renamer Infos

にあります。

最新リリースは、 Visual Studio Project Renamerダウンロードページ

フィードバックは大歓迎です。

この質問はすでに回答されていますが、この問題を解決するためのアプローチを共有したいと思いました。 VSでプロジェクトの名前を変更し、それを実現するためにフォルダー名、プロジェクト名、および.slnファイルを編集するという同じ問題がよくありました。それをすべて実現するVBScriptを作成しました。置換用に選択した文字列に注意する必要があります。

編集:ソリューションの.slnファイルと同じディレクトリに.vbsファイルを配置するだけです。

'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

2017年に私にとってうまくいったこと:

  • ソリューションVSを閉じる
  • ソリューション内のプロジェクトの名前を変更したディレクトリ。
    • (ソース管理の変更をプッシュ-私の場合はgit)
  • テキストエディター(VS2017以外)でディレクトリの名前を変更してslnファイルを編集します。
  • VSでソリューションを再開

&quot; re-adding project &quot;のようなことを言ったので、すべてを再構築しましたが、すべてが順調でした。

注:この修正はVisual Studio 2008用ですが、ここで機能するはずです。

  1. Windowsエクスプローラーを使用して、両方のソリューションフォルダー(親フォルダーと子フォルダー)の名前を新しいソリューション名に変更します。
  2. 親フォルダーにある .sln ファイルを削除します。
  3. Visual Studioで、[ファイル|プロジェクトを開く]を選択します。
  4. 名前を変更したばかりの新しいフォルダーにドリルして、.csprojファイル(子フォルダーにある)を開きます。
  5. プロジェクト名を右クリックし、目的の名前に変更します。 (手順1のフォルダーと同じ名前にする必要があります。)
  6. ファイルを選択|ソリューションを閉じます。 .sln ファイルへの変更を保存するかどうかを尋ねるダイアログが表示されます。 [はい]をクリックします。
  7. 「ファイルに名前を付けて保存」ダイアログで、新しく名前を変更したPARENTフォルダーをポイントし、「保存」をクリックします。 (注: .sln ファイルの名前がフォルダーと同じであることを確認してください。必須ではありませんが、一貫性を維持します。)

完了。

TFSを使用する場合、ステップ2は、実際にはソース管理でフォルダーの名前を変更し、ソリューションを再度開く前に最新のものを取得することです。

最近、このようなことを行う無料のVS拡張機能のベータ版をアップロードしました。 VSギャラリーをご覧ください。 ギャラリーダウンロード

まあ私は自分のやり方でやった

     
  • Visual Studio 2012を閉じる
  •  
  • サブディレクトリの名前を.slnの下の好みの名前に変更します
  •  
  • *。suoファイルを削除
  •  
  • ソリューションを再度開き、ロードされたプロジェクトのプロパティを修正して、新しいサブディレクトリ名に合わせます
  1. ソリューション内のプロジェクトおよびプロジェクトフォルダーの名前を変更

  2. ソリューションからプロジェクトを削除

  3. 既存のプロジェクトをソリューションに追加(名前を変更したプロジェクト)

それは私のために機能します。 TFSは新しいプロジェクトも追跡します。

テキストファイルで.slnを開き、次の行で新しいフォルダー名に変更します Project(&quot; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}&quot;)=&quot; Ricky&quot;、&quot; \。csproj&quot;、&quot; {021CC6B0-8CFB-4194-A103-C19AF869D965}&quot;

これを何度もしなければなりませんでした。既存のプロジェクトを再利用できるが、名前空間、ファイル、フォルダー内のテキストの名前を変更できることは非常に便利です。ルートフォルダーから再帰的な検索と置換を使用することは、名前の変更がソリューションファイルとプロジェクト参照内のプロジェクトへのリンクを壊さないことを意味します。

このため、これを行うためのプロジェクトを作成しました。また、アプリケーションは、.git、.svn、.vs設定ファイルなどのバージョン管理フォルダーを無視するよう努力します。詳細はREADMEをご覧ください。

https://github.com/garethrbrown/vs-project-rename

例

フォルダー名を変更した後、メモ帳で.slnファイルを開き、パスを新しいパスに変更します。

新しいプロジェクトを作成する必要があり、プロジェクト名とは異なるプロジェクトフォルダー名が必要な場合に同様の問題が発生します。

新しいプロジェクトを作成すると、次の場所に保存されます

./path/to/pro/ject/YourProject/YourProject.**proj

ject フォルダーに直接置きたいと仮定しましょう:

./path/to/pro/ject/YourProject.**proj

これを達成するための私の回避策は、パスの最後の部分を名前としてプロジェクトを作成し、追加のディレクトリを作成しないようにすることです:

./path/to/pro/ject/ject.**proj

Visual Studio内からプロジェクトの名前を変更すると、VSを離れることなく目標を達成できます。

<*>

このアプローチの欠点は、デフォルトの名前空間と出力バイナリの名前も調整する必要があり、プロジェクトテンプレートに含まれるすべてのファイルの名前空間を更新する必要があることです。

VS 2013およびTFS 2013を使用しています。

このようにしました:

  1. ソリューション自体を開かずにVisual Studioを開き、ソース管理エクスプローラーを使用してプロジェクトのフォルダーを見つけて名前を変更します
  2. ソース管理エクスプローラーでソリューションファイルをダブルクリックして、ソリューションを開きます。
  3. 質問があります:最近、このソリューションにプロジェクトが追加されました。ソース管理からそれらを取得しますか?&quot ;、そしてはいを選択します
  4. フォルダとプロジェクト構造はそこにありますが、ファイルになったので、ソース管理から最新バージョンを取得します
  5. 変更をビルドしてコミットしてみてください。

VS 2013 Update 1でテストされ、TFSに接続されたプロジェクトに適用できるより簡単なアプローチがあります:

  • VSを開きますが、ソリューションは閉じます
  • ソースエクスプローラーを開き、目的のフォルダーの名前を変更します(最初に閉じていない場合、ソリューションは閉じられます)
  • ソリューションを右クリックし(ソースエクスプローラーからも)、チェックインを選択します
  • ソリューションを開くと、新しいプロジェクトが追加されたことが通知され、変更を受け入れることに同意します。
  • ソリューションからプロジェクトを削除して再度追加し、チェックイン
  • 内部参照が正常であることを確認します

最も簡単な方法は、ウィンドウのプロパティに移動してデフォルトの名前空間の名前を変更し、名前を変更することです

1-VSの外部でプロジェクトの名前を変更します。 テキストエディタでyour_project_name.slnを編集し、パスの名前を新しいパスに変更します

次のことを行いました:

  1. vs2013内からプロジェクトの名前を変更します。 (オプション/不要)

  2. プロジェクトをテンプレートとしてエクスポートします。

  3. ソリューションを閉じます。

  4. ソリューションを再度開く

  5. 保存したテンプレートからプロジェクトを作成し、好きな名前を使用します。

  6. ソリューションエクスプローラーから前のプロジェクトを削除します。

この時点で、新しいソリューションをコンパイルしようとしました。そのため、いくつかのリソースとヘッダーを古いプロジェクトフォルダーから新しいプロジェクトフォルダーに手動でコピーする必要がありました。エラーなしでコンパイルされるまでこれを繰り返します。これで、この新しいプロジェクトは&quot; .exe&quot;を保存しました。ファイルを前のフォルダーに保存します。*

そう-&gt;

  1. Windowsエクスプローラーに移動し、ソリューションファイルを古いプロジェクトフォルダーから新しいプロジェクトフォルダーに手動でコピーします。

  2. ソリューションを閉じ、新しいプロジェクト内からソリューションを開きます。

  3. 必要に応じて構成を(x64)に戻しました。

  4. ソリューションのフォルダーから古い名前のプロジェクトのフォルダーを削除します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top