web-dev-qa-db-ja.com

Visual Studio内からプロジェクトフォルダの名前を変更する方法

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

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

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

606
andersjanmyr

TFSユーザー:ファイルやフォルダの名前を変更する前に警告する必要があるソース管理を使用している場合は、代わりにこの回答を参照)これは必要な追加のステップをカバーしています。


プロジェクトの名前を変更するには、ビジュアルスタジオでfolderfile.*proj)、display nameとします。

  • 解決策を閉じます。
  • Visual Studioの外部のフォルダの名前を変更します。 (ソース管理を使用している場合はTFSで名前変更)
  • 警告を無視してソリューションを開きます(ソース管理からプロジェクトを読み込むように要求された場合は "no"と答えます)。
  • すべての利用不可プロジェクトを通過し、...
    • プロジェクトのpropertiesウィンドウを開きます(プロジェクトをハイライトして<Enter>を押します。 Alt+Enter または F4または、>プロパティを右クリックします。
    • プロパティ 'File Path'を新しい場所に設定します。
      • プロパティが(VS2012のように)編集できない場合は、Notepad ++などの別のエディタで.slnファイルを直接開き、そこでパスを更新します。 (TFSなどで最初に解決策をチェックアウトする必要があるかもしれません)
    • プロジェクトの再読み込みプロジェクト - 右クリック>プロジェクトを再読み込み。
    • 強調表示してを押して、プロジェクトの表示名を変更します。 F2または右クリック> 名前の変更をクリックします。

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

これらの手順を実行する場合は、以下の名前を一致させることも検討してください。

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

以下の値を変更することも検討してください。 Assembly attributes

  1. AssemblyProductAttribute
  2. AssemblyDescriptionAttribute
  3. AssemblyTitleAttribute
697
andersjanmyr

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

  1. ソリューションファイルを開く
  2. 変更したい* .csprojを検索します。
  3. それは次のようになります(* .solファイルを基準にして)。

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

  4. 最初の部分を新しいディレクトリに変更するだけです。

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

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

楽しむ。

84
rabashani

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

  1. ソリューションエクスプローラーで、Main solution > Renameを右クリック
  2. ソリューションエクスプローラーでproject (under solution) > Renameを右クリック
  3. ソリューションエクスプローラでProperties >goto Applicationタブをダブルクリックするか右クリックし、一致するようにAssembly nameDefault namespaceの名前を変更します。
  4. 名前空間の名前も変更したい場合は、クラスファイルの1つを開きます。プロジェクト全体で、namespace > Rename...を右クリックすると、名前空間への参照がすべて検索され、置き換えられます。
  5. プロジェクトを閉じて、project folderの名前を変更します。
  6. メモ帳で.slnファイルを編集し、パスをcjprojに変更します。すなわちfu\bar.csproj --> bar\bar.csproj
72
wired00

男、私はこれに苦労しましたか。残念ながら、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つの別々のチェンジセットでそれをすることをお勧めします。

48
René

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

Voila :)

31
mortenbpost

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

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

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

26

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

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

また、これらのステップが実行された後、あなたはあなたの古いプロジェクト名に他の参照を改名したくなるかもしれません。

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

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

...そして、「名前空間はファイルの場所に対応していません。 'SomeProjectName'にする必要があります」というエラーを取り除きます。

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

AssemblyInfo.cs内の古いプロジェクト名の発生をすべて変更します。

8
CRice

VS2017の場合は、私のビジュアルスタジオ拡張を使用することができます

ダウンロード

プロジェクト名を変更します。

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

私はこれを自分でしなければなりませんでした(VS2010を使用)。何人かの人々が答えたように、最も簡単なステップは次のように思われます:

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

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

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

100%テストし、私のケースで完璧に動作しました。

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

4
user3285866

リンク記事の項目3を参照してください。

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

それは私のために働きました。

4
Jim Lewis

この質問はすでに答えられていますが、私はこの問題を解決するための私のアプローチを共有したいと思いました。私はよく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
2
Valkyrias

私はこれらすべてのステップを自動化する小さなツールを書きました。今のところSubversionもサポートしています。

現在のリリースに関する情報はここにあります Visual Studio Project Renamerに関する情報

Latestsリリースは、 Visual Studio Project Renamerのダウンロードページからダウンロードできるようになりました

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

2
Razer

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を開き、プロジェクトを右クリック - >名前の変更

6)その後、名前空間の名前を変更します。私は、resharperにはこれに対するいくつかの選択肢があることを読みました。しかし、単純な検索/置換が私のために仕事をしました。

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

2
ivke

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

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

それは " プロジェクトの再追加 "のようなものでした、私はすべてを再構築しました、そしてすべてが行ってよかったです。

2
Charles Plager

@ andersjanmyrの解決策:利用できないプロジェクトのプロパティページを表示するためにAlt + Enterを押してそこに "ファイルパス"プロパティを設定することができます。利用できないプロジェクトの右クリックコンテキストメニュー(VS2008)では利用できないためです。

2
Ujjwal Singh

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

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

完了しました。

1
Robo A GoGo

私達は最近あなたのためにこれをする無料のVSエクステンションのベータ版をアップロードしました。 VS Galleryを見てください: Gallery Download

1
user3652868
  1. ソリューション内のプロジェクトおよびプロジェクトフォルダの名前を変更する

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

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

わたしにはできる。 TFSは新しいプロジェクトも追跡します。

1
Vlad

さて私はそれを私のやり方でやりました

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

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

1
Amy Patterson

.slnをテキストファイルで開き、次の行にある新しいフォルダ名に変更します。 -4194-A103-C19AF869D965} "

0

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

0
LastTribunal

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

この目的のために、私はこれを実行するためのプロジェクトを作成しました。アプリケーションはまた、.git、.svn、および.vs設定ファイルなどのバージョン管理フォルダーを無視しようとします。 READMEに詳しい情報があります。

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

Example

0
gb2d

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

0
hjbjh

私は次のことをしました:

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

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

  3. 解決策を閉じます。

  4. ソリューションを再開する

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

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

この時点で私は新しいソリューションをコンパイルしようとしました、そしてそうするために私は手動で古いプロジェクトフォルダーから新しいプロジェクトフォルダーにいくつかのリソースとヘッダーをコピーしなければなりませんでした。エラーなしでコンパイルされるまでこれを行います。これで、この新しいプロジェクトは " 。exe"ファイルを前のフォルダに保存しました。

だから - >

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

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

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

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

0
user5141040

あるいは単純に

すべてのコードをコピーしてから、目的の名前で新しいプロジェクトを開き、コードを貼り付けます。デバッグを実行してから、前のプロジェクトを削除します。完了しました。

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

0
user10074310

VS 2013とTFS 2013を使用しています。

私はこのようにしました:

  1. ソリューション自体を開かずにVisual Studioを開き、ソース管理エクスプローラを使用してプロジェクトのフォルダを検索して名前を変更します。
  2. ソース管理エクスプローラでソリューションファイルをダブルクリックしてソリューションを開きます。
  3. 「最近このソリューションにプロジェクトが追加されました。それらをソース管理から取得しますか?」という質問が表示されたら、[はい]を選択します。
  4. これで、フォルダとプロジェクト構造は存在しますが、ファイルが存在するようになりました。ソース管理から最新バージョンを取得します。
  5. 変更を構築してコミットするようにしてください。
0
Muris

VS 2013 Update 1でテストされ、TFS関連プロジェクトに適用可能な、より単純なアプローチがあります。

  • VSを開くが解を閉じる
  • ソースエクスプローラを開き、目的のフォルダの名前を変更します(まだ閉じていない場合は、ソリューションは自動的に閉じられます)。
  • (Source Explorerからも)ソリューションを右クリックしてチェックインを選択します。
  • ソリューションを開くと、新しいプロジェクトが追加されたことがわかりますので、変更を承認してください。
  • ソリューションからプロジェクトを削除して再度追加してから、チェックインします
  • 内部参照が正しいことを確認してください
0
Mohamed Emad

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

0
user1062770

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

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

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

jectフォルダに直接格納したいとしましょう。

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

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

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

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

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

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

0
Etan