Как добавить ссылку на проект в приложении 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