Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Создание nuget: невозможно упаковать DLL, на которые есть ссылки

Автор вопроса: dafriskymonkeyОтветов: 1

Я пытаюсь создать nuget с помощью "Nuget Package Explorer". Проект ссылается на 2 библиотеки DLL, предназначенные для целевого файла .net4.0, и для основной целевой библиотеки .net4.5.

Как указано, я поместил 2 библиотеки DLL, на которые есть ссылки, в папку внутри папки "lib" с именем "net40", основную dll в папку с именем "net45", затем я нажал на nuget, который находится здесь

Но когда я пытаюсь установить его в другом проекте, он не требует никаких dll!

Я делаю что-то неправильно ?

Спасибо.

ОБНОВЛЕНИЕ:

Пакет nuget содержит:

lib (folder)
    net45 (folder)
        MainAssembly.dll -> targets .net_4.5
        Microsoft.VisualStudio.TextTemplating.10.0 -> targets .net_4
        Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 -> targets .net_4

Примечания:

  • MainAssembly нужны две другие сборки
  • Я просто хочу настроить таргетинг на .net версии 4.5

эта проблема :

создание пакета nuget с использованием приведенной выше структуры не работает, при установке nuget в новый проект MainAssembly не добавляется в список ссылок, добавляются только две другие сборки.

nugetnuget-packagedll

Ответы

Ответ 1 · NightOwl888

Проект ссылается на 2 библиотеки DLL, предназначенные для целевого файла .net4.0, и для основной целевой библиотеки .net4.5.

Пакет NuGet может быть нацелен на несколько версий платформы .NET. Однако проект .NET не может.

Ваши зависимые сборки должны быть помещены в ту же папку версии .NET framework, чтобы их можно было установить в целевой проект. Итак, если вы хотите, чтобы ваш пакет NuGet был ориентирован на 4.0 и 4.5, структура должна выглядеть так:

lib
    net40
        MainAssembly.dll
        DependentAssembly1.dll
        DependentAssembly2.dll
    net45
        MainAssembly.dll
        DependentAssembly1.dll
        DependentAssembly2.dll

Основная сборка в каждой группе должна быть нацелена на ту же версию платформы, что и родительская папка. Зависимые сборки могут быть нацелены на любую версию, такую ​​же или более раннюю, чем целевая версия.

Обратите внимание, что обычно каждая сборка упаковывается как отдельный пакет NuGet, и пакеты NuGet зависят друг от друга, а не помещают зависимые сборки в один и тот же пакет.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы