Ссылка на стандартные библиотеки DLL из проекта.NET Core XUnit
Я использую последнюю версию XUnit, и я следовал этим шагам, чтобы начать проект библиотеки классов (.NET Core).
Все остальные библиотеки всего моего решения используют только 4.6.1, поэтому я изменил раздел frameworks в project.json следующим образом:
{
"frameworks": {
"net461": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.0.1-rc2-24027"
}
}
}
}
и все отлично работает внутри моего решения. Я могу запустить тесты, и все ссылки на другие библиотеки работают нормально, хотя их всего 461. По сути, в моем решении у меня есть несколько других библиотек классов (.NET Core), и моя библиотека XUnit опирается на них, поэтому я просто могу ссылаться на них прямо через visual studio, и ссылки добавляются в файл project.json проекта XUnit.
Возникла ситуация, когда мне нужно сделать следующее:
Скопируйте только проект XUnit на компьютер другого разработчика. Разрешить ему редактировать исходный код, чтобы он мог создавать тесты, но не предоставлять ему доступ ко всем остальным библиотекам / коду. Я подумал, что просто смогу скопировать все остальные библиотеки в случайную папку и ссылаться на них из автономного проекта XUnit. Однако это не так, потому что при попытке ссылки я получаю сообщение о том, что проекты.NET Core не могут ссылаться на стандартные библиотеки DLL.
Может кто-нибудь дать мне представление о том, как я могу это сделать?
1 ответ
Вы должны распространять свои библиотеки как пакеты nuget.
Ядро.NET работает с зависимостями только через Nuget. Даже когда вы добавляете ссылку с помощью VS UI (команда "Добавить ссылку") в фоновую ссылку, она добавляется как пакет nuget: если вы откроете файл project.json, вы увидите, что ваши библиотеки указаны в том же формате "package:version" в разделе "зависимости", как и другие).
Чтобы упаковать свой код в пакет Nuget, используйте команду dotnet pack.
Если вы не используете общедоступные источники Nuget, вы можете разместить свой собственный канал Nuget.