回答:
このブログポストが述べたように、それは可能です。
<ItemGroup>
<Compile Include="any_abs_or_rel_path\**\*.*">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
</Compile>
</ItemGroup>
ただし、ファイルはコピーされないことに注意してください。
<None>...</None>
代わりに使用してみてください <Compile>...</Compile>
。しかし、私はそれがとにかくそれらのファイルをコピーすると思います.VisualStudioでさえ、リンクされたファイルでこれを行います。
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
ファイル名から拡張子が削除されないようにするために使用する必要がありました。
VS2012以降では、Altキーを押したままフォルダーを別のプロジェクトにドラッグできます。各ファイルをリンクとして手動で追加するのと同じですが、高速です。
upd:VS2013 update 2(Shared Project Reference Managerを使用)またはVS2015 を使用している場合は、共有プロジェクトの使用を検討してください。
moからの答えに 1つの追加。Marcusからのコメント。コンテンツアイテムをリンクする場合は、ファイル拡張子を含める必要があります。
<ItemGroup>
<Compile Include="any_abs_or_rel_path\**\*.*">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
</ItemGroup>
<Compile ...
でどうだ。私の場合、.ts
新しいプロジェクトにファイルを参照する必要があります。その方法。ありがとう!
リンクされたフォルダーをIDEに表示する元のクエリの部分に関しては、これを達成することは一種の可能性があります。そのため、ソリューションエクスプローラー内に、すべてのファイルがルートに表示されるのではなく、すべてのリンクされたファイルが含まれるフォルダーがあります。ソリューション。これを実現するには、以下を追加します。
<ItemGroup>
<Compile Include="..\anypath\**\*.*">
<Link>MyData\A\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Compile>
</ItemGroup>
これには、MyDataと呼ばれるソリューションエクスプローラーの新しいフォルダーのリンクされたディレクトリからのすべてのファイルが含まれます。上記のコードの「A」は任意の名前で呼び出すことができますが、フォルダーを表示するためにはそこにある必要があります。
シェルをバストアウトし、シンボリックリンクを追加します。
runas管理者
mklink /d LinkToDirectory DirectoryThatIsLinkedTo
BAMシンボリックリンク!
/ dは、ディレクトリリンクを指定します。
Vistaでそのまま使用できます。XPにバックポートできます。
ここにドキュメント:http : //technet.microsoft.com/en-us/library/cc753194%28WS.10%29.aspx
シンボリックリンクに慣れていない人にとっては、それは本質的に別のファイルまたはディレクトリへのポインタです。アプリケーションに対して透過的です。ディスク上の1つのコピー、それに対処するいくつかの方法。別のアドレスへのポインタではなく、同じファイルのNTFSの実際のファイルIDエントリである「ハードリンク」を作成することもできます。
注:コメントに記載されているように、これはシンボリックリンクを作成したコンピューターでのみ機能し、gitなどのバージョン管理システムでは機能しません。
<Content ...>
、<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
Visual Studioにビルド時にリソースをコピーさせることもできます。