選択した回答は、ソリューションフォルダーの代わりに実際のプロジェクトを使用することが可能であることを示唆していますが、実際にはその方法を説明していません。私がここで説明しているのは、それを達成するためのおそらく最も不便な方法ではないと思います... :-P
通常のプロジェクトファイルの問題は、最終的にによってコンパイルされることMSBUILD
です。また、コンパイル不可能なファイルのみを含むプロジェクトが必要な場合は、それが問題になります。
しかし、少し前に、Visual Studioは新しいプロジェクトタイプ、Shared Project(.shproj拡張子)を導入しました。このプロジェクトタイプはデフォルトではコンパイルされませんが、別のプロジェクトによって参照されている場合(およびその場合のみ)にコンパイルされます。
したがって、ここでの秘訣の1つは、ソリューションフォルダの代わりに共有プロジェクトを使用することです。他のプロジェクトから参照されない共有プロジェクトを追加することは明らかに可能です。つまり、上記の問題を回避できます。
次に、<None Include="**/*" />
.shprojファイルの句を使用することで、新しいファイルやサブフォルダーを自動的に反映させることができます。
だから基本的にこれを行います:
- ソリューションに新しいフォルダーを作成します。
- この新しいフォルダのルートに新しい.shprojファイルを追加します。
- ソリューションで新しい.shprojを参照します。
たとえば、私の場合は、DockerDev.shprojを作成したので、開発マシンでのみ実行するdocker関連のスクリプトをグループ化できます。
<?xml version="1.0" encoding="utf-8"?>
<!-- DockerDev/DockerDev.shproj -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="**/*" />
</ItemGroup>
</Project>
この.shprojファイルはを追跡します任意のでは、ファイルの任意この新しいのサブフォルダDockerDev
私の溶液中のフォルダ。
私の知る限り、このソリューションはOPが要求したものとほぼ同じように機能します。フォルダーへのコンパイルできない参照として機能し、フォルダーに加えられた変更を自動的に反映します。