Как добавить ссылку на проект в приложении asp.net 5
Как мне известно, Visual Studio 2015 имеет некоторое обновление, и мы больше не можем добавлять библиотеки DLL в приложение asp.net 5, если нам нужно добавить нам нужно сделать NuGet, а затем установите его.
Теперь мои вопросы: -
1) Если у меня есть один проект с двумя библиотеками классов, то как я могу добавить эту ссылку на библиотеку классов (DLL) в моем приложении asp.net 5?
2) Если библиотека классов также находится в режиме разработки, то как обновить эту DLL в приложении asp.net 5, если эта DLL устанавливается через NuGet, потому что каждый раз для публикации в NuGet и получения последних требуется больше времени.
3) Предположим, нужно ли нам добавлять все DLL файлы с помощью NuGet, а что относительно частных DLL?
4) Есть ли способ, с помощью которого менеджер пакетов NuGet может справиться с этим?
Ответы
Ответ 1
Быстрый ответ - вам не нужны пакеты NuGet для этого и да, можно ссылаться на свои собственные библиотеки.
Два способа:
-
Добавив его в объект "dependecies" на уровне корня в вашем проекте project.json. Имейте в виду, что это действие добавит ссылку в каждую целевую структуру, указанную в разделе "рамки", поэтому, если вы добавите ссылку на библиотеку классов старого типа, она не будет работать с новым DNXCore 5.0
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"dependencies": {
"Library": "1.0.0-*"
-
Добавив его для конкретной версии фреймворка. Что более гибко, так как вы можете использовать библиотеки старого типа для DNX451 и новые библиотеки классов vNext для DNXCore 5.0
"frameworks": {
"dnx451": {
"dependencies": {
"ClassicLib": "1.0.0-*",
"vNextLib": "1.0.0-*",
}
},
"dnxcore50" : {
"dependencies": {
"vNextLib": "1.0.0-*"
}
}
} ....
Все образцы, которые я проверил на Visual Studio 2015 RC.
Ответ 2
Вы можете добавить старую библиотеку классов Foo.csproj в Bar.xproj как ссылку, но не напрямую, см. инструкции ниже. Это можно сделать без загрузки пакетов в Beta8.
- Перейдите в папку Foo.csproj, введите:
dnv wrap Foo.csproj
.
- Теперь у вас должно быть несколько файлов, для меня это было
Foo/wrap/Foo/project.json
. Перейдите к своему решению в Visual Studio, Add -> Existing project -> project.json
.
- Теперь у вас есть еще несколько файлов, в том числе
Foo.xproj
, который доступен в решении Visual Studio, но он не создается.
- Откройте cmd в папке Foo и выполните
dnu restore
.
- После 4) завершается без ошибок, и Foo.xproj может быть создан, теперь вы можете перейти к Bar.xproj и добавить в качестве ссылки Foo.xproj.
- Откройте cmd в каталоге Bar и выполните
dnu restore
.
- Теперь вы можете создать Bar.xproj
Я очень надеюсь, что в финальной версии это будет проще.
Ответ 3
Я отредактировал свой предыдущий ответ, чтобы указать на следующий ответ в StackOverflow:
Проблема добавления ссылки на проект библиотеки классов в ASP.NET 5 (Core)
Я могу проверить, что ответ там работает, если ваш проект front-end, тот, из которого вам нужно ссылаться на другие библиотеки классов, - это ASP.NET 5 MVC 6 beta6.
Ответ 4
Вам необходимо создать project.json для вашей сборки.
вы можете использовать команду:
kpm wrap "c:\path\to.csproj"
Это создаст папку "wrap" в корневой папке решения. Затем вы должны иметь возможность добавить ссылку на свой проект. Если это не сработает, попробуйте переместить project.json в каталог проекта.
Чтобы использовать kpm (K Package Manager), вам необходимо установить инструменты "k" и "dnx" и установить активную версию.
Если команда kpm не работает, используйте следующую команду:
1) Откройте PowerShell в качестве администратора и введите эту команду, чтобы позволить powershel загружать и устанавливать пакет:
Set-ExecutionPolicy RemoteSigned
2) Откройте cmd с правами администратора и введите следующую команду для установки пакета:
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"
3) В cmd вы можете обновить и установить переменные environement с помощью команды foloing:
dnvm upgrade
затем повторите попытку команды "kpm wrap"
После этого вы сможете добавить ссылку на свой проект. Но я думаю, что это не сработает с ядром. если у вас есть проблемы, попробуйте использовать другую версию dnvm (например, beta2 или "2 1.0.0-beta5" ) с помощью команды dnvm install следующим образом:
dnvm install 1.0.0-beta4-11566