Общие ресурсы Visual Studio 2010

Таким образом, у меня есть решение, которое содержит 4 проекта, проект «Core», который является фактическим приложением (как библиотека классов), и 3 проекта-оболочки, «Консоль», «WinForm» и «Сервис», которые в основном обертывают класс Facade в основной класс и содержит различные настройки для обработки различных стратегий ведения журналов для каждого приложения (Консоль/Трассировка/Файл) и запуска приложения как Консоль, WinForms или Сервис, в зависимости от того, как клиент хочет развернуть приложение.

В проекте Core у меня есть 3 файла ресурсов, которые содержат простые представления шаблонов для веб-инфраструктуры Nancy. Однако способ, которым Нэнси ищет эти взгляды, находится на текущем пути. Поскольку файлы в проекте Core не находятся в текущем пути для любого из трех других проектов, мне нужен простой способ доступа к этим файлам по всем проектам.

Несколько наивно я думал, что именно здесь появилась концепция «решения», чтобы обрабатывать зависимости между проектами. Однако, в поисках интернета, к моему большому удивлению, кажется, что нет элегантного способа сделать это. Единственные два решения, которые я смог найти, включают в себя копирование файлов в папку/временный или каталог в решении и последующее копирование их в соответствующие нужные каталоги, как действия пост-сборки и добавление элемента вручную, используя команду «Добавить как Ссылка". Теперь, когда оба эти решения технически работают, первые листья (возможно, устаревшие) создают артефакты, лежащие там, где они действительно не принадлежат (ИМХО), а вторая - утомительная, трудоемкая и склонная к человеческой ошибке (потому что вы не можете просто ссылаться на каталог).

Действительно ли это мои два варианта, или есть какой-то третий, совершенно очевидный способ, который я только что пропустил, потому что я новичок в Visual Studio?

Вы можете использовать пользовательский IRootPathProvider в Нэнси, если вам нужны только то, что вам нужно.

Другой вариант - связать папку - вы можете это сделать, но это связано с ручным взломом файла csproj, здесь есть несколько вопросов, включая этот:

 [Структура каталогов связанных файлов Visual Studio](https://stackoverflow.com/questions/3033990/visual-studio-linked-files-directory-structure) 



[Nuget](https://nuget.codeplex.com/) is a package management system, that I have used to share artifacts between projects as dependencies. You could include libraries available via nuget.org or have your own nuget packages defined.

[Teamcity](http://confluence.jetbrains.net/display/TCD7/NuGet) has got good support for generating nuget packages with every build and can serve as a Nuget server.

[Here](https://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Files_to_Include_in_the_Package) is a reference to include files into a nuget package.