Visual Studioコピープロジェクト


141

プロジェクトのコピーを作成したいと思います。ファイルや参照を追加するなどして、ゼロから始めたくないのです。私は、デプロイメント用のコピーではないことに注意してください。単なるコピー。

これを行うためのVSのツールはありますか?VS 2008を使用しています

回答:


144

コピーが必要な場合、これを行う最も速い方法はプロジェクトを保存することです。次に、ファイルシステムに全体のコピーを作成します。Visual Studioに戻り、コピーを開きます。そこから、同じ名前が2つないようにプロジェクト/ソリューションの名前を変更することをお勧めしますが、これがコピーを作成する最も速い方法です。


25
次に、ProjectGUIDはどうなりますか?
Lars Corneliussen

4
あなたが任意の持っている場合は、SVNのファイルを削除することを忘れないでください(私はやった!) - > weblogs.asp.net/jgalloway/archive/2007/02/24/...
qbantek

51
同じGUIDを持つ別のプロジェクトが同じソリューションに存在する場合、プロジェクトGUIDはVSによって自動的に更新されます。
セバスチャンクリスマンスキー2012年

3
私はこれを試していますが、アプリケーションの名前空間の名前は変更されません。私が探していたものではありません。
Jason

3
Community 2017バージョン15.8.4では、プロジェクトGUIDがVSによって自動的に更新されません。実際、AssemblyInfo.csがソースコード管理にある場合はどうなりますか?
PeterVermont 2018

134

テンプレートを作成するだけです。

プロジェクトから選択:プロジェクト-テンプレートのエクスポート

ウィザードで定義できます

  • テンプレート名
  • テンプレートの説明
  • アイコン
  • プレビュー画像

次に、プロジェクトを「My Exported Templates」ディレクトリに圧縮します。新しいプロジェクトを作成するときにテンプレートを使用可能にするオプションもあります。

テンプレートを使用して新しいプロジェクトを作成すると、名前空間はすべてのファイルで 'your_new_project_name'に対して正しくなり、すべての参照が正しくなり、すべてが完璧になります:)

.zipファイルは誰にでも送信できます。また、誰もが使用できるように、.zipファイルを(解凍しないで)Templates \ ProjectTemplatesディレクトリにコピーする必要があります。

フォルダー、レイアウトページ、ビューモデルなどを自分の好みに合わせて配置したASP.NET MVCテンプレートを作成しました。

注:
プロジェクトに空のフォルダーがある場合、それはテンプレートに追加されないため、各フォルダーに適切な空のクラスと、画像フォルダーのサンプル画像を追加しました。


28
IMO、ベストアンサー。
fischgeek 2017

14
VS2017では、エクスポートテンプレートはプロジェクトの最上位メニュー項目の下にありました。
Choco

3
これは信じられないほど便利です、これまで私はこれについてどうして知りませんでしたか?ありがとう!
Aldarrion

5
これが選ばれた答えであるべきです。非常に簡単!このプロセスでは、テンプレートをProjects \ ProjectTemplatesフォルダーにもコピーする必要があります。プロジェクト作成ダイアログに表示するには、Visual Studioを再起動する必要がありました。
midoriha_senpai

3
テンプレートをインポートして新しいプロジェクトを作成するときが来ましたが、その方法がわかりませんでした。テンプレートを見つけるには、[新しいプロジェクト]ダイアログの検索バーを使用する必要があることがわかりました。
Tawab Wakil

6

これがあなたが頻繁に行うことである場合、私はあなたのためにそれを行うことを約束する小さな(非フリーの)ユーティリティがあると思います:私はそれを使用していません。

http://www.kinook.com/CopyWiz/

CodePlexにもこのプロジェクトがあります。

http://clone.codeplex.com/

おそらくcodeplexプロジェクトを試してみます。うまくいかない場合は、手動ですべての名前を変更してslnファイルを編集します。


codeplexアプリ「Solution Clone」はかなりうまく動作します。すべてのソリューションファイルをコピーして名前を変更し、すべての参照を保持します。必要なのは、コピーしたソリューションを開いた後、名前を変更した新しいプロジェクトファイルに再度ポイントし、プロジェクトのプロパティでアセンブリ名とルート名前空間の名前を変更することだけでした。すべてを手動で行うよりもはるかに簡単でした。
Fütemire

4

.csproj、.vspsccなどの内部的に形成されたいくつかの設定ファイルは、以前のソリューションの場所とシステム内の他のパス/場所に属している参照を指している可能性があるため(ほとんどの場合そうなります)、プロジェクトをコピーすることはお勧めできません。 TFS。これらのファイルの読み取りと参照の修正の専門家でない限り、プロジェクトをコピーしないでください。

コピーするのと同じタイプのスケルトンプロジェクトを作成できます。これにより、適切な.csproj、.vspsccファイルが作成されます。これで、クラスファイル、スクリプト、およびその他のコンテンツは影響を受けないため、前のプロジェクトから自由にコピーできます。これにより、スムーズなビルドとバージョン管理が保証されます(それに関心があることを選択した場合)。

以上のことをすべて踏まえたうえで、プロジェクトを段階的にコピーする方法を紹介しましょう。

  1. ソリューションエクスプローラーでコピーするプロジェクトに移動し、右クリックします
  2. 今選択しファイルエクスプローラでフォルダを開くと(あなたは、ディスク上のローカルパスにマッピングされたソリューションを持っていると仮定)。
  3. フォルダー全体として複製するプロジェクトを選択します(すべての依存関係とともに、bin .vspsccファイル、.csprojファイル)
  4. それらを目的の場所に貼り付けます(同じソリューションフォルダーまたは別のソリューションフォルダーの場合もあります。同じソリューションフォルダー内にある場合は、名前を変更する必要があります。.csprojとその他の内部ファイルも新しい名前に変更する必要があります。 )。
  5. Visual Studioに戻る必要はありません。[ソリューション]> [追加]> [既存のプロジェクト...]を右クリックします。
  6. 配置した場所からプロジェクトファイル(.csprojファイル)を参照して選択し、[ 開く ] を選択します。
  7. このファイルはソリューションエクスプローラーに表示され、作業できます。

いくつかのビルドエラーを解決する必要があるかもしれません。おそらく重複した/欠落している参照やものがありますが、それ以外の場合は、期待どおりにロジックと構造が初期のままです。


2
更新:2019年時点での最良の回答は、@ Shaneによる以下の回答です。VSテンプレートの作成は、参照の問題なしでプロジェクトを複製するのに最適な方法です。
Vikram K

3

私は次の手順に従いResharperという開発ツールを使用しています。

そう、

  1. 既存のプロジェクトフォルダを目的の場所にコピーします
  2. ソース管理に移動し、目的のルートフォルダーを右クリックして[ アイテムをフォルダーに追加...]を選択します。次に、コピーするファイルを選択するウィザードが表示されます(一部のファイルとウィザードは、その理由でデフォルトでガイドします)。
  3. ソリューションファイル(* .sln)の名前変更する
  4. 存在する場合、サブプロジェクトの名前変更します
  5. Resharperを使用して、バインディング名前空間の名前を変更します(私は安全にダーティジョブを自動的に実行します)。別の方法は、新しい名前ですべての名前空間を手動で変更することです。
  6. メソッド名を使用した同じアクション。
  7. 変更する場合は、ソリューションのプロパティを確認してください。

それでおしまい。あなたは準備ができています!!!


1

最良の方法は、実際に新しいプロジェクトを最初から作成し、コピーするプロジェクトファイル(project、form1、フォルダーを除くすべて)が含まれているフォルダーに移動することです。たとえば、ファイルの名前を変更します(form1ファイルを除く)。たとえば、Ch4Ex1ファイルを自分のCh4Ex2プロジェクトにコピーしましたが、最初にファイルの名前をCh4Ex2に変更しました。それらのファイルをコピーして、Visual Studioの新しいプロジェクトのソリューションエクスプローラーに貼り付けます。次に、ファイルを上書きするだけでよいのです。

古いスレッドですが、この答えを探している人に役立つことを願っています!


0

ソースファイルがプロジェクトフォルダーの下のフォルダーにあるプロジェクトがあります。ソースフォルダーなしでプロジェクトフォルダーをコピーし、コピーしたプロジェクトを開いたところ、ソースファイルは失われていませんが、古い場所にあります。プロジェクトを閉じ、ソースフォルダーもコピーして、プロジェクトを再度開きました。これで、プロジェクトはコピーされたソースファイルを魔法のように参照します(「保存」に新しいパスが表示され、ファイルの変更がコピーされたバージョンに保存されました)。

注意点があります。古いプロジェクトフォルダーと新しいプロジェクトフォルダーの両方が使用済みのライブラリフォルダーの下にない場合、上記のマジックはライブラリへの絶対参照も破棄し、同じ相対パスの下にあると想定します。

VS Express 2012でこれを試しました。


0

私のソリューションは少し異なります-パッケージが常駐していたコンピューターが停止したため、別のコンピューターでパッケージを再作成することを余儀なくされました。

(VS 2008で)私がしたことは、ディレクトリ内の次のファイルを開くことでした。

                  - <package name>.djproj
                  - <package name>.dtproj.user
                  - <package name>.dtxs
                  - <package name>.sln
                  - Package.dtsx

これを行うと、ポップアップウィンドウでslnファイルが新しいソリューションになるかどうかを尋ねられ、「はい」をクリックするとすべてが完全に機能しました。


0

上記の解決策を試し、MVCプロジェクトのコピーを作成した後

MVCプロジェクトの場合、.csprojファイルのポート番号を更新してください。iisapplicationhost.configを使用してポート番号を確認できます。同じポート番号を使用すると、IISでアセンブリの読み込みの問題が発生します。


0

上記のシェーンの回答(これは素晴らしいBTWで動作します)…

参照リストに多数の黄色い三角形が表示される場合があります。これらのほとんどは、Build->Clean Solutionおよびによって削除できますBuild->Rebuild Solution

私はたまたま、もう少し頑固なGoogle APIリファレンスをいくつか持っていました。

同じバージョンのNuGetパッケージを再インストールしようとしても機能しませんでした。
Visual Studioは、すでにインストールされていると見なします。

これを回避するには:
1:元のバージョンを書き留めます。
2:次の上位バージョンをインストールします...それからアンインストールします。
3:手順1の元のバージョンをインストールします。


0

Visual Studio 2013を使用していますが、プロジェクト>テンプレートのエクスポートはオプションではありません。 これが、プロジェクトのクローンを作成するために使用するものです。

ソリューションから:ファイル>テンプレートのエクスポート>テンプレートを作成するプロジェクトを選択し、保存パスを書き留めます

こちらから VS 2013 SDKをダウンロードしてインストールします

拡張性の下で新しいVSIXプロジェクトを作成する

VSIXManifestダイアログから[アセット]タブを選択します

著者テキストボックスに入力します

タイプに「プロジェクトテンプレート」を選択し、参照してエクスポートしたテンプレートを追加します(ステップ1でメモしたパスに保存されます)。

VSIXプロジェクトを保存してビルドします。VSIXプロジェクトの... / bin / Debugフォルダーに移動し、ダブルクリックして.vsixファイルを実行します

Visual Studioの新しいインスタンスを起動すると、テンプレートがどのようなプロジェクトタイプでもテンプレートが表示されます。テンプレートから新しいプロジェクトを作成する

dll参照を再度追加する必要があります


0

これを行う最も簡単な方法は、プロジェクトをテンプレートとしてエクスポートし、デフォルトのテンプレートの場所に保存することです。次に、テンプレートを移動先とまったく同じディレクトリにコピーします。その後、新しい場所でVisual Studioを開き、新しいプロジェクトを作成すると、テンプレートを検索するよう求めるプロンプトが表示されます。テンプレートに名前を付けたものを検索して選択し、完了です!

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