Пакеты Nuget не устанавливают ничего в основное приложение. net - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь установить нокаут js и машинописный текст в базовом приложении. net через Nuget.

Он отображается в пакетах, но ничего не устанавливает в папке сценариев, как это было ранее в asp. net.

enter image description here

Чего мне не хватает?

Ответы [ 3 ]

2 голосов
/ 29 апреля 2020

TL; DR ASP. NET Ядро больше не работает таким образом (пакеты, копирующие контент javascript / css в ваш проект). Вам необходимо адаптировать ваш рабочий процесс.

. NET Основные проекты работают только в проектах в стиле SDK, а проекты в стиле SDK используют только NuGet PackageReference, а не packages.config. Документы о миграции с packages.config на PackageReference включают одну проблему совместимости пакетов , которая не поддерживает папку content , то есть, как в packages.config эти активы копируются в ваш проект при установке пакета.

Я не могу найти список рекомендаций для c для ASP. NET Базовых приложений, но, насколько я понимаю, вы можете использовать LibMan или используйте NPM, что соответствует в основном остальной части индустрии веб-разработки за пределами. NET делает. Если вы используете новые шаблоны проектов для создания нового ASP. NET Core Angular или ASP. NET Core React приложения, вы увидите, что они создают папку ClientApp, которая использует npm и все официальные инструменты реагируют / angular CLI. Шаблон MVC содержит копии jQuery и bootstrap, без очевидного способа их обновления.

0 голосов
/ 30 апреля 2020

Показывается в пакетах, но ничего не устанавливается в папку сценариев, как это было ранее в asp. net.

Первый , I согласен с зивкан . Это функция PackageReference в формате Nuget Management .

VS имеет два формата для управления пакетами nuget: Packages.config и PackageReference .

Начиная с новых проектов формата SDK (Net Core и Net Standard) используйте только PackageReference для управления пакетами nuget, это будет сильно отличаться от эффекта, отраженного в format.config формате управления пакетами .

При использовании файлов Content из пакетов nuget с PackageReference файлы будут потеряны из папки Scripts.

Так же, как этот документ сказал, у него есть такие проблемы совместимости.

enter image description here

На самом деле , вы можете ввести C:\Users\xxxx\.nuget\packages\knockoutjs\3.5.1 и найти там папку с именем Content , Nuget скопирует содержимое этой папки в ваш проект при установке этого пакета nuget.

Но * Папка 1049 * Content может быть распознана в формате Packages.config, и, насколько я знаю, папка ContentFiles используется в PackageReference для добавления содержимого в ваш проект. Таким образом, в вашей ситуации пакет nuget должен одновременно включать папку ContentFiles . См. этот официальный документ .

Но пакет Nuget knockoutjs не имеет папки contentfiles. Вот почему в net проектах фреймворка с packages.config есть файлы содержимого, в то время как в новых проектах SDK его нет.

И это изменение поведения может быть эффективным только при создании nuget пакет, так что вы не можете вносить какие-либо изменения, вы можете только связаться с автором пакета, чтобы внести эту модификацию, и позволить ему добавить эту функцию как можно скорее, чтобы применить ее к проекту нового формата SDK.

Предложение

Итак, на данный момент вы можете попробовать это:

1) Вы можете вручную добавить файл содержимого из C:\Users\xxxx\.nuget\packages\knockoutjs\xxxx\Content к проекту с помощью Добавление существующих элементов .

2) откат для использования Net Каркасные проекты с packages.config.

3) контакт с автором по этой ссылке .

0 голосов
/ 28 апреля 2020

может быть unyn c, удалите папку пакетов из решения и восстановите пакеты снова. Это решит проблему. Также проверьте окно вывода, в котором будет показан список ошибок.

...