Visual Studio でディレクトリ構造全体を「既存の項目を追加」するにはどうすればよいですか?
-
09-06-2019 - |
質問
C# プロジェクトにまったく関連付けられていない独立したファイルのセットがあり、それらは複雑なネストされたディレクトリ構造に存在します。
作業中の ASP.NET Web アプリケーションの別のディレクトリにその形式で追加したいと考えています。同じ構造を維持しながら。そこで、フォルダーをプロジェクトのターゲットの場所にコピーし、「既存の項目を追加」しようとしましたが、前のフォルダー階層が失われました。
通常、ディレクトリを手動で再作成し、1 対 1 ベースでコピーしてから、既存の項目を追加します。この場合、ディレクトリ/アイテムが多すぎます。
では、Visual Studio 2008 に既存のディレクトリとファイルを追加するにはどうすればよいでしょうか?
解決
Windows エクスプローラーからソリューション エクスプローラーにファイル/フォルダーをドラッグします。それらをすべて追加します。Windows エクスプローラーはユーザー モード プロセスであるため、Visual Studio が管理者モードの場合、これは機能しないことに注意してください。
他のヒント
有効にする 「すべてのファイルを表示」 特定のプロジェクトの場合 (表示するには「更新」をクリックする必要がある場合があります)**。
プロジェクトの一部ではないフォルダー/ファイル わずかに「軽く」見える プロジェクトツリー内。
右クリック 追加したいフォルダー/ファイルを選択してクリックします 「プロジェクトに含める」. 。フォルダー/ファイルをプロジェクトに再帰的に追加します。
** これらのボタンは、ミニ ソリューション エクスプローラー ツールバーにあります。
** デバッグ モードになっていないことを確認してください。
ソリューション エクスプローラーで:
- クリック すべてのファイルを表示 (ソリューション エクスプローラーの上部にある左から 2 番目のアイコン)。
- 追加するフォルダーを見つけます。
- 右クリックして選択します 「プロジェクトに含める」
これを使用して、HTML エディターやサードパーティのファイル ブラウザーなどのアドオンをインストールします。
以前に提供されたソリューションのうち 2 つは、
- Windows エクスプローラーからドラッグ アンド ドロップ
- すべてのファイルを表示 そしてプロジェクトに含めます。
質問で求められていることを実行しないでください。
プロジェクトに含める ディレクトリ構造を維持しながら.
少なくとも私の場合はそうではありません(Windows 7 上の C++/CLI プロジェクト Visual Studio 2013)。
Visual Studio で、通常のビュー (非表示) に戻ると、 すべてのファイルを表示)、追加したファイルはすべてプロジェクトの最上位にリストされます。
はい、ディスク上では元の場所に存在しますが、ソリューション エクスプローラーでは緩んでいます。
ソリューションエクスプローラーでディレクトリ構造を再作成してから実行すること以外に、それを回避する方法が見つかりませんでした。 既存のアイテムを追加する 適切な場所にあります。
これらの説明に基づいてこれをすぐには理解できませんでしたが、最終的につまずいたのは次のとおりです。
- 「すべてのファイルを表示」をオンにします - ソリューション エクスプローラーのツールバーにアイコンがあります
- Windows エクスプローラー (ソリューション エクスプローラーではない) を使用して、ファイルを配置したいディレクトリ構造にファイルを移動します。
- ソリューション エクスプローラーのツールバーでも [更新] をクリックします。
- 移動したファイルは、ファイルを配置したソリューション エクスプローラーのツリー構造に「ゴースト化」して表示されるはずです。
- ゴースト化されたファイルまたはフォルダーを右クリックし、「プロジェクトに含める」をクリックします。フォルダーの内容がすべて含まれます
プロジェクト XML を変更して、NPM の「node_modules」などの既存のサブフォルダーと構造をプロジェクトに自動的に追加できます。
これは古い MSBuild / Visual Studio バージョン用です
<ItemGroup>
<Item Include="$([System.IO.Directory]::GetFiles("$(MSBuildProjectDirectory)\node_modules","*",SearchOption.AllDirectories))"></Item>
</ItemGroup>
現在の MSBuild / Visual Studio バージョンの場合:
それを XML のノードに置くだけです。
<Project>
</Project>
この場合は、$(MSBuildProjectDirectory) ode_modules をフォルダー名に変更するだけです。
ディレクトリ構造をプロジェクト ディレクトリに配置する必要があります。次に、ソリューション エクスプローラー ツールボックスの上部にある [すべてのファイルを表示] アイコンをクリックします。その後、追加したディレクトリが表示されます。次に、このディレクトリを選択して右クリックし、[プロジェクトに含める] を選択する必要があります。
ついに、Visual Studio 2017 では、ユーザーが 1 回のクリックでディレクトリ全体をインポートできるようになりました。Visual Studio 2017 には新機能があります "開いたフォルダ」を使用すると、ソリューションとして保存しなくても、フォルダー全体を開くことができます。ソースコードは以下の方法でインポートできます。
- メニュー ファイル → 開ける → *フォルダ(Ctrl + シフト + ○)
devenv.exe <source folder>
CMake プロジェクトのビルドとデバッグもサポートします。
これが私がすることです:
- ソリューションを右クリック -> 追加 -> 既存の Web サイト...
- Web サイトが存在するフォルダーを選択します。サイトのルート フォルダーだけです。
その後、フォルダーからファイル、およびそれらのフォルダー内のファイルに至るまで、すべてがソリューションに追加されます。
私が発見した巧妙なトリックは、[既存の追加...] に移動すると、開いているダイアログからフォルダーをソリューションにドラッグできることです。
Visual Studio を管理者モードで自動的に開くようにしているので、これを機能させるためだけに元に戻す必要がなかったので、これは良い回避策でした。
私にとってうまくいったのは、フォルダーを Visual Studio にドラッグし、フォルダーを右クリックして [エクスプローラーでフォルダーを開く] を選択することでした。次に、すべてを選択し、Visual Studio のフォルダーにドラッグします。
マーケットプレイスには、OP が求めていたことを実行するオープンソース拡張機能が存在します。
希望どおりに動作しない場合は、コードが利用できるので、シナリオに合わせて変更できます。
HTH
Windows 7 では、次のことが可能です。
プロジェクトを右クリックし、「追加->既存の項目」を選択します。表示されるダイアログで、追加するディレクトリのルートを参照します。右上隅に検索ボックスがあります。タイプ *.cs
または *.cpp
, 追加するファイルの種類は何でも構いません。検索が終了したら、すべてのファイルを選択し、「追加」をクリックしてしばらく待ちます...
これを行うために私が見つけた最もクリーンな方法は、ターゲット フォルダーに新しいクラス ライブラリ プロジェクトを作成し、そのビルド出力をすべて別の場所にリダイレクトすることです。.csproj ファイルはそのフォルダー内に残りますが、Visual Studio でそれを確認して、プロジェクトに含めるファイルを選択できるようになります。
Visual Studio がこれをネイティブでサポートしていないのは面倒ですが、CMake は回避策として Visual Studio プロジェクトを生成できます。
それ以外は、Qt Creator を使用してください。その後、Visual Studio プロジェクトをエクスポートできます。