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

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

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

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

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

1
nl ja de

2 ответы

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

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

Структура каталогов связанных файлов Visual Studio

2
добавлено

Nuget 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 has got good support for generating nuget packages with every build and can serve as a Nuget server.

Here is a reference to include files into a nuget package.

0
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot