rksoftware

Visual Studio とか C# とかが好きです

Visual Studio のプロジェクトに外部のファイルをリンクで追加する

Visual Studio ではプロジェクト外のファイルのリンクをプロジェクトに追加することができます。
この機能が、クロスプラットフォーム的に複数の実行可能なプロジェクトを含むソリューションでのソースなどの共有に使える場合があります。特にプラットフォーム毎に配置するフォルダが変わるファイルなどに有効です。

□ プロジェクト毎に異なるフォルダにリンクする例


TextFile1.txt, TextFile2.txtWpfApp1 では Folder2 フォルダに、WpfApp2 では Folder3\Folder4 フォルダにリンクしている例。

ファイル一つづつリンクする場合には、既存の項目の追加で「リンクとして追加」すると手っ取り早いです。

□ フォルダをリンク

クラスなどのソースファイルなどはリンクに漏れがあればビルドエラーとして現れますが、しかしリソースファイルだと漏れが怖いです。
そんな時は、.csproj を編集してフォルダで指定することも可能です。

今回の例では、WpfApp1.csproj には

<ItemGroup>
  <Content Include="..\SharedResoures\Folder1\*.*" Link="Folder2\%(RecursiveDir)%(FileName)%(Extension)"/>
</ItemGroup>


Wpf2.csproj には

<ItemGroup>
  <Content Include="..\SharedResoures\Folder1\*.*" Link="Folder3\Folder4\%(RecursiveDir)%(FileName)%(Extension)"/>
</ItemGroup>

を追加しました。

参考

次の記事を参考にさせていただきました。
http://spiratesta.hatenablog.com/entry/20131120/1384915752