Відповіді:
Як зазначено в цьому дописі на блозі , це можливо.
<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 2 (за допомогою диспетчера спільних проектів ) або VS2015.
Одне доповнення до відповіді від мо. і коментар від Маркуса, якщо ви пов'язуєте елементи вмісту, вам потрібно буде включити розширення файлу:
<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. "А" у наведеному вище коді можна назвати чим завгодно, але він повинен бути там, щоб папка з’явилася.
Вирвіть оболонку і додайте символічне посилання.
runas Administrator тоді
mklink /d LinkToDirectory DirectoryThatIsLinkedTo
БАМ символічне посилання!
/ d вказує посилання на каталог.
Працює у Vista на непридатному стані. Можна підтримувати в XP.
Документація тут: http://technet.microsoft.com/en-us/library/cc753194%28WS.10%29.aspx
Для тих, хто не знайомий із символічними посиланнями, це, по суті, вказівник на інший файл чи каталог. Це прозоро для додатків. Одна копія на диску, кілька способів її вирішення. Ви також можете зробити "жорстке посилання", яке не є вказівником на іншу адресу, а фактичним записом ідентифікатора файлу в NTFS для того самого файлу.
ПРИМІТКА: як зазначено в коментарях, це працюватиме лише на комп'ютері, де ви створили симпосилання, і не працюватиме в системі управління версіями, як git.
<Content ...>
та додати,<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
щоб змусити Visual Studio копіювати ресурси, що збираються.