2016-12-05 3 views
1

Я хотел бы знать, как я могу совместно использовать исходные коды C# между двумя (или более) проектами .NET Core (проекты командной строки!).Доля кода между несколькими проектами .NET Core

Насколько я понимаю, я не могу ссылаться на исходные файлы в разных каталогах в проектах на основе xproj/project.json. Я заметил, что теперь кажется, что рекомендуется создавать пакеты nuget для всего. Но действительно ли мне нужно настроить частный репозиторий и создать пакет nuget только для того, чтобы иметь возможность совместно использовать некоторые общие исходные блоки?

VS2015 содержит шаблон для библиотеки .NET Core, который может быть подходящим для создания общей библиотеки. Возможно ли связать эту библиотеку с проектом без пакета nuget?

ответ

3

.NET Core Library - отличное решение для вас.

Сделайте это так же, как в стандартном решении C# - просто создайте проект и обратитесь к этому проекту или добавьте ссылку на DLL-файл.

Вам не нужно использовать Nuget для вашей собственной цели. Пакеты Nuget могут быть полезны для распространения вашей dll снаружи.


Разъяснение:

Я скучаю один момент - я использую VS2015, но я включил проект библиотек классов в моем решении, и я ссылка на проекте, а не DLL-файл, и это отлично работает в ASP.Net Core.

У меня также есть другой проект, в котором ссылка на DLL-файл работает нормально, но это предыдущая версия приложения ASP.NET (не Core). Кажется, NET Core не поддерживает этот способ, как в предыдущей версии (все же?).

Извините за путаю, иногда это слишком много технологий;)


Так вы могли бы просто включить ClassLibrary проект в решение вашего проекта и передать его как проект?

+0

Какую версию VS вы используете? Я просто попробовал то, что вы предлагаете с VS2015, и получите: проекты .NET Core поддерживают только ссылки на сборки .NET Framework в этом выпуске. Чтобы ссылаться на другие сборки, они должны быть включены в пакет NuGet и ссылаться на этот пакет. – NicolasR

+0

Извините, я пропустил одну точку - слишком много технологий;) - Да, я использую VS2015, но я включил проект Library Library в мое решение, и я ссылаюсь на проект, а не на DLL-файл, и это работает отлично в ASP.Net Core. У меня также есть другой проект, в котором у меня есть несколько ссылок на файлы DLL напрямую, но это предыдущая версия приложения ASP.NET (не Core). Так что вы можете просто включить проект ClassLibrary в свое решение и передать его в этот проект? –

+0

Хорошо, перекрестные ссылки на проекты, похоже, сработают. Это приемлемое решение для моего дела. – NicolasR

1

Я достиг этого, используя источник управления для ветвления от моих обычно используемых проектов в каждом новом решении и снова слияния с главной веткой, если я вношу какие-либо изменения.

В качестве альтернативы, имея в виду, что NuGet представляет собой только архивированную коллекцию файлов, вы можете сохранить этот пакет NuGet локально или даже создать шаблон для Visual Studio, который по умолчанию имеет общие библиотеки.

Существует широкий спектр возможностей, которые соответствуют вашим предпочтениям и текущему состоянию среды (I.E: возможность настройки Source Control или репозитория пакетов).

+0

Идея использования системы управления источником интересна. К сожалению, я ищу конкретное решение для небольших тестовых/побочных проектов, где я хочу делиться между 1 и 10 исходными файлами, а иногда даже не ставить проекты в исходный контроль! Для крупных проектов я бы предпочел местное решение Nuget, но для небольших проектов, я думаю, решение Lukasz Makowejs с кросс-проектными ссылками является самым легким для меня. – NicolasR

Смежные вопросы