Visual Studioでディレクトリ構造全体を「既存のアイテムを追加」するにはどうすればよいですか?


765

複雑な入れ子のディレクトリ構造にある、C#プロジェクトとはまったく関係のない独立した一連のファイルがあります。

それらをその形式で、作業中のASP.NET Webアプリケーションの別のディレクトリに追加したいのですが、同じ構造を維持しながら。そのため、フォルダーをプロジェクトのターゲットの場所にコピーし、「既存のアイテムを追加」して、以前のフォルダー階層を失うことを試みました。

通常、手作業でディレクトリを再作成し、1対1でコピーしてから、既存のアイテムを追加しました。この場合、単にディレクトリ/アイテムが多すぎます。

では、Visual Studio 2008で既存のディレクトリとファイルをどのように追加するのでしょうか。


44
これがほとんどの人(私を含む)にとって明らかではないという事実は、Visual Studioに関する悲しい証です。
ピートアルヴィン

22
@Pete Alvin Visual Studioについては多くの悲しい遺言がありますが、他のIDEのいくつかに時間を費やしてきたので、もっと感謝しています。
Freek Nortier 16

4
ビジュアルスタジオは完璧ではありませんが、利用可能なほぼすべてのIDEを使用しました。最高なら。Eclipseはまだ近づいていません。おそらくXcodeだけが近づいています。
user1127081 2017

2
@ user1127081:私はこれを2番目にする必要があります。Visual Studioは完全とはほど遠いですが、私は他のすべてのIDEをほぼすべての開発とターゲットOSに使用しており、どれも非常に悪いです。私はまた、Xcodeが残りの中で明らかに最高であることにも同意する必要がありますが、Xcode 3とXcode 4の間で多くのことを承認した後で初めて、Eclipseは悪夢に過ぎません。
カイザールディ

回答:


737

ファイル/フォルダーをWindowsエクスプローラーからソリューションエクスプローラーにドラッグします。それらをすべて追加します。Windowsエクスプローラーはユーザーモードプロセスであるため、Visual Studioが管理者モードの場合、これは機能しません。


42
これは私にはうまくいきません。無効なドロップターゲットのアイコンが表示されるだけです。以下のすべてのファイルを表示することは完全に機能します
Cine

115
VS 2010では、dragginがフォルダーを取得した後、プロジェクト内のすべてのファイルを表示するオプションを選択します。ファイルは「ゴースト」形式で存在し、フォルダを右クリックして[プロジェクトに含める]をクリックします。その後、それらが追加されます
John Ptacek、2011年

10
@JohnPtacek:プロジェクトでは機能しますが、ソリューションでは機能しません。

2
この回答はVS2010には無効です(少なくとも私が知る限り)。7/10/12のトムの回答は、VS2010での私にとって最良のソリューションでした
BLSully

8
タスクマネージャーを使用してexplorer.exeを強制終了し、管理者として起動すると、管理者として実行されている場合でもVisual Studioにドラッグアンドドロップできます。
xander 14年

545

特定のプロジェクトの[ すべてのファイルを表示]を有効にします(ファイルを表示するには、[更新]をクリックする必要がある場合があります)**。

プロジェクトの一部ではないフォルダ/ファイルは、プロジェクトツリーに少し「明るく」表示されます。

追加するフォルダ/ファイルを右クリックして、[ プロジェクトに含める ]をクリックします。プロジェクトにフォルダ/ファイルを再帰的に追加します。

**これらのボタンは、ミニソリューションエクスプローラーのツールバーにあります。

**デバッグモードになっていないことを確認してください。


2
これは、プロジェクトファイルよりも深いファイルでのみ機能するようです。プロジェクトファイルを独自のフォルダに保存すると、機能しません。
ダニーパーカー

28
これは個々のプロジェクトでのみ機能し、ソリューション内では機能しません。

7
ええと...それはあなたがファイルを置くことになっているところではありません。もちろん、ルートフォルダーより上のファイルは見つかりません。
Bluebaron

3
これは、追加したフォルダーをプロジェクトフォルダーに配置する場合にのみ機能します。私の場合、それらを別の場所(プロジェクト間で共有)にしたいと考えています。XCodeでは、フォルダー構造を任意の場所からプロジェクト構造にドラッグすると、フォルダー構造をVSのようにフラット化する代わりに保持します。VSにはここに機能がないようです。
Mattijs 2013

9
ヒント-ソリューションではなくプロジェクトが選択されていることを確認してください。すべてを表示できます!
niico

89

ソリューションエクスプローラー:

  1. [ すべてのファイルを表示 ]をクリックします(ソリューションエクスプローラーの上部にある左から2番目のアイコン)。
  2. 追加するフォルダを見つけます。
  3. 右クリックして[ プロジェクトに含める ]を選択します

これを使用して、HTMLエディターやサードパーティのファイルブラウザーなどのアドオンをインストールします。


16
これは、4年前のBrannonの回答とどう違うのですか?
ToolmakerSteve 2014年

7
これは、ソリューションフォルダーに関する元の問題には対応していません。以前にも取り上げられています。
user2864740

@ToolmakerSteve:7年前のガントのソリューションと同じであるという点で異なります。stackoverflow.com/questions/392473/...
Veverke

競合するcsprojファイルがチェックインされ、tfsが競合と上書きを無視する場合にも役立つため、このソリューションを強くお勧めします
John Demetriou

6
+1。[すべてのファイルを表示]がアイコンであり、コンテキストメニューのエントリではないことが(比較的)明確に示されているため、この回答は他の回答よりも役立ちました。

35

以前に提供された2つのソリューションは、

  • Windowsエクスプローラからドラッグアンドドロップ
  • すべてのファイル表示し、プロジェクトに含めます。

質問で求められたことを行わないでください。

ディレクトリ構造を維持しながらプロジェクトに含める

少なくとも私の場合はそうではありません(Windows 7のC ++ / CLIプロジェクトVisual Studio 2013)。

Visual Studioで、通常のビューに戻ったら(すべてのファイルを表示しない))、追加したファイルがすべてプロジェクトの最上位に表示されます。

はい、ディスク上にはまだ存在していますが、ソリューションエクスプローラーでは緩んでいます。

ソリューションエクスプローラーでディレクトリ構造を再作成し、適切な場所に既存のアイテム追加する以外に方法は見つかりませんでした。


VS2010、c ++でも同じ動作が見られます。
Radim Cernej 2014

確かに、Visual Studio 2010でも同じです。ディレクトリ構造のないファイルも追加されません。そのフォルダー構造内の最初のファイルだけが追加され、サブフォルダーは追加されません。
ジョナス

2
同意し、それはまだ異なります。VSなどの人気のある高価なソフトウェアには、このような機能がないのではないかと思います。私は、ソリューションエクスプローラーとウィンドウズエクスプローラーに2つの異なるが類似した構造があると、やや混乱します...
Janis

12
ここで2015を使用します。それでもフォルダ構造は保持されません。驚いた。
Toby Deshane、2016年

2015 Update 3を使用して、BannonとTomからのアプローチで成功しました。ネストされたすべてのフォルダーが期待どおりに表示されました。
ジョンハットン

22

私はこれらの説明に基づいてこれをすぐに理解しませんでしたが、これが私がついに偶然見つけたものです:

  1. [すべてのファイルを表示]をオンにします-ソリューションエクスプローラーのツールバーにアイコンがあります
  2. Windowsエクスプローラー(ソリューションエクスプローラーではない)を使用して、ファイルを配置するディレクトリ構造にファイルを移動します。
  3. ソリューションエクスプローラーツールバーでも[更新]をクリックします。
  4. 移動したファイルは、配置したソリューションエクスプローラーのツリー構造に「ゴースト」で表示されます。
  5. ゴースト化されたファイルまたはフォルダを右クリックし、[プロジェクトに含める]をクリックします。フォルダのすべてのコンテンツが含まれます

2
これは、プロジェクトではなくソリューションフォルダー用です。
StingyJack 2017年

更新:VS2019に「参照」ボタンはありません
Liu Hao


13

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

赤い丸の上をクリックします。フォルダーがソリューションエクスプローラーに表示されます。

フォルダを右クリックして、[ プロジェクトに含める ]をクリックします。


9

プロジェクトのXMLを変更して、NPMの「node_modules」のように既存のサブフォルダーと構造をプロジェクトに自動的に追加できます。

これは、古いMSBuild / Visual Studioバージョン用です

<ItemGroup>
   <Item Include="$([System.IO.Directory]::GetFiles(&quot;$(MSBuildProjectDirectory)\node_modules&quot;,&quot;*&quot;,SearchOption.AllDirectories))"></Item>
</ItemGroup>

現在のMSBuild / Visual Studioバージョン:

xmlのノードに配置するだけです。

<Project>
</Project>

この場合、$(MSBuildProjectDirectory)\ node_modulesをフォルダー名に変更するだけです。


はい、*。* projファイルを手動で編集すると、目的の場所に移動できる場合があります。
クリスO

1
だからあなたは誰かがこれをバッチ処理するプラグインを作ることができると言っていますか?数十のフォルダを含むフォルダ構造を手動でXMLで再作成していないため
Spectraljump

私が探していたもの
Vitaliy Kalinin

5

ディレクトリ構造をプロジェクトディレクトリに配置する必要があります。次に、ソリューションエクスプローラーツールボックスの上部にある[すべてのファイルを表示]アイコンをクリックします。その後、追加したディレクトリが表示されます。次に、このディレクトリを選択して右クリックし、[プロジェクトに含める]を選択する必要があります。


1
これは、受け入れられた回答が示唆するものであり、その下のコメントの1つです。
ケヴ

4

これが私がすることです:

  1. ソリューションを右クリック->追加->既存のウェブサイト...
  2. ウェブサイトがあるフォルダを選択します。サイトのルートフォルダのみ。

次に、ソリューションからフォルダーからファイル、およびそれらのフォルダー内のファイルにすべてが追加されます。


4

最後に、Visual Studio 2017では、ユーザーはワンクリックでディレクトリ全体をインポートできます。Visual Studio 2017には、フォルダーをソリューションとして保存する必要がなくてもフォルダー全体を開くことができる新機能「フォルダーを開く」があります。ソースコードは以下の方法でインポートできます。

  1. メニューファイル開く →*フォルダ(Ctrl+ Shift+ O
  2. devenv.exe <source folder>

CMakeプロジェクトのビルドとデバッグもサポートします。

「フォルダーを開く」でC ++コードベースをVisual Studioに取り込む



2

私が発見した巧妙なトリックは、「既存のものを追加...」に移動した場合、フォルダーを開いているダイアログからソリューションにドラッグできることです。

私はVisual Studioを自動的に管理者モードで開くようにしているので、これを機能させるためだけに元に戻す必要がないので、これは私にとって良い回避策でした。


1

私にとってうまくいったのは、フォルダーをVisual Studioにドラッグし、フォルダーを右クリックして、[ファイルエクスプローラーでフォルダーを開く]を選択することでした。次に、すべてを選択し、それらをVisual Studioのフォルダーにドラッグします。


0

Windows 7では、次のことができます。

プロジェクトを右クリックして、「追加」->「既存のアイテム」を選択します。表示されるダイアログで、追加するディレクトリのルートを参照します。右上に検索ボックスがあります。入力する*.csか、*.cppファイルの種類を追加するものは何でも、。検索が完了したら、すべてのファイルを選択し、[追加]をクリックしてしばらく待ちます...


5
これはディレクトリ構造を維持しません-それはあなたが追加をクリックしたフォルダにすべてを置くだけです。
Marc

0

これを実行するために見つけた最もクリーンな方法は、ターゲットフォルダーに新しいクラスライブラリプロジェクトを作成し、そのビルド出力のすべてを別の場所にリダイレクトすることです。それでも.csprojファイルはそのフォルダーに残りますが、Visual Studioでそれを表示して、プロジェクトに含めるファイルを選択することができます。


-3

Visual Studioがこれをネイティブでサポートしていないのは不愉快ですが、CMakeは回避策としてVisual Studioプロジェクトを生成できます。

それ以外は、Qt Creatorを使用してください。その後、Visual Studioプロジェクトをエクスポートできます。

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