Как исключить сборку AnyCPU из пакета NuGet? - PullRequest
0 голосов
/ 15 апреля 2019

Я собираюсь упаковать библиотеку DLL, которая доступна только для Windows x86 и x64, поскольку она запускает встроенную библиотеку DLL.

У меня есть файл nuspec:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <releaseNotes>First Nuget release</releaseNotes>
    <copyright>$copyright$</copyright>
    <tags>native ugly stuff</tags>
  </metadata>
  <files>
    <file src="bin\Release" exclude="*.dll" />
    <file src="bin\x86\Release\**" target="runtimes/win-x86/lib/net461" />
    <file src="bin\x64\Release\**" target="runtimes/win-x64/lib/net461" />
  </files>
</package>

Однакопосле запуска nuget pack -Properties Configuration=Release -NoDefaultExcludes вариант AnyCPU все еще находится в сгенерированном пакете.

Если я полностью удаляю цель сборки AnyCPU, я получаю эту ошибку:

Error NU5012: Unable to find 'C:\Users\RabJen\Documents\git\MySolution\MyNativeDLL\bin\Release\MynativeDLL.dll'. Make sure the project has been built.

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

1 Ответ

1 голос
/ 15 апреля 2019

Если вы не передадите имя файла в nuget pack, он найдет любые файлы проекта MSBuild (например, csproj), создаст его и включит выходные сборки.Я не вижу никаких опций , которые бы не включали выходные данные проекта.

Поэтому лучше всего было бы явно указать nuget pack файл nuspec, например nuget pack whatever.nuspec.Это означает, что ваш скрипт сборки должен будет собрать проект перед упаковкой, так как NuGet больше не будет собирать ваш проект, и вам также нужно будет заменить все переменные (все, что окружено $) фактическими значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...