Консоль диспетчера пакетов и поведение файла сборки Nuget.exe

У меня есть классический проект.net 4.71, в который я пытаюсь добавить созданный мной пакет nuget. Когда я использую диспетчер пакетов Visual Studio, к решению добавляются файлы cli или interface. Когда я добавляю пакет с помощью nuget.exe (4.5.1.4879), эти файлы ведут себя как положено и не добавляются в решение, а выводятся только при сборке.

Что может быть причиной этого и как я могу предотвратить это поведение?

Это папка.post-build и *.targets, которые добавляются в решение при использовании Update-Package или пользовательского интерфейса.

Файл nuspec для пакета:

    <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>idhere</id>
        <version>0.1.0.0</version>
        <authors>names here</authors>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description></description>
    </metadata>
    <files>
        <file src="bin/release/project.dll" target="lib\net461" />
      <file src="bin/release/project.pdb" target="lib\net461" />
    <file src="*.ps1" target="build" />
        <file src=".post-build\*.*" target="build\.post-build" />
        <file src="*.targets" target="build" />
        <file src="**\*.cs" target="src" exclude="**\bin\**;**\obj**;**\Properties\**"/>
    </files>
</package>

1 ответ

Решение

Что может быть причиной этого и как я могу предотвратить это поведение?

Это потому, что консоль диспетчера пакетов и Nuget.exe имеют другое поведение при установке пакета nuget. Я боюсь, что вы не можете предотвратить это поведение.

Когда вы используете nuget.exe для установки пакета, NuGet CLI не изменяет файл проекта или packages.config; таким образом, это похоже на восстановление в том, что он только добавляет пакеты на диск, но не меняет зависимости проекта. См. Ссылку NuGet CLI:

введите описание изображения здесь

И наоборот, операция Установка пакетов в диспетчере пакетов:

Устанавливает пакет и его зависимости в проект.

введите описание изображения здесь

Кроме того, мы не могли использовать консоль Power Manager консоли вне Visual Studio, поскольку консоль диспетчера пакетов предоставляет доступ к объектам Visual Studio.

https://github.com/NuGet/Home/issues/1512

Таким образом, причина, по которой вы по-разному относитесь к консоли диспетчера пакетов и к Nuget.exe.

Надеюсь это поможет.

Другие вопросы по тегам