Установка пакета NuGet завершается с неопределенной ошибкой

Я создал пакет NuGet, содержащий C # (My <? Xml version = "1.0" ?> < Package > <metadata> <id> MyLibIF.dll_x86 </ id> <версия> 8.0.0.1 </ version> < title> Библиотека MyLib для 32-бит </ title> <авторы> J.Doe </ авторы> <владельцы> Наша компания </ owner> <licenseUrl> https: //localhost/license.html </ licenseUrl> <projectUrl> https: //localhost/GitWeb/MyLibIF.git </ projectUrl> <iconUrl> http: //localhost/images/favicon.ico </ iconUrl> <requireLicenseAcceptance> false </ requireLicenseAcceptance> <описание> Библиотека для некоторых функций и типа интеграции </ description> <releaseNotes> </ releaseNotes> <copyright> Copyright 2016 </ copyright> <tags> MyLib MyLibIF 32-бит </ tags> < / metadata> <файлы> <файл src = "bin release MyLibIF.dll" target = "lib net45" /> <файл src = ".. MyLib Release MyLib.dll" target = "lib net45 " /> <! - Это не .NET dll, но должно быть рядом с MyLibIF.dll в развертывании -> </ files> </ package> IF.dll) DLL, которая является оболочкой вокруг C ++ DLL ( PM > установка - пакет mylibif . dll_x86 установка 'MyLibIF.dll_x86 8.0.0.1' . Успешно установлен 'MyLibIF.dll_x86 8.0.0.1' . Добавление 'MyLibIF.dll_x86 8.0.0.1' в ConsoleApplication1 . УДАЛЕНИЕ 'MyLibIF.dll_x86 8.0.0.1' . Успешно неустановленного 'MyLibIF.dll_x86 8.0.0.1' . установить не удалось . Подвижной назад ... установка - пакет : Не удалось добавить ссылку на 'MyLib' . в строке : 1 символ : 1 + установить - пакет mylibif . dll_x86 + ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Категория yInfo : NotSpecified : (:) [ Install - Package ], InvalidOperationException + FullyQualifiedErrorId : NuGetCmdletUnhandledException , NuGet . PowerShell . Команды . InstallPackageCommand PM > ). Они должны быть развернуты рядом друг с другом.

Это NuSpec:

NotSpecified

Это очень удобно. Когда я использую PowerShell для дополнительной информации, я получаю следующее: `

<references>
    <reference file="MyLib.dll" />
    <reference file="MyLibIF.dll" />
</references>

`

Страшный MyLib.dll, это для меня абсолютно ничего не значит. Я думаю, что MyLibIF.dll устанавливается, но MyLib.dll (на C ++) отказано. Мне не хватает знаний NuGet, чтобы справиться с этим. Кто-нибудь знает, что здесь происходит?

И на стороне примечания, как вы развертываете, когда вам не нужна версия .NET framework?

ОБНОВИТЬ:

Я обновил nuspec, чтобы содержать ссылки.

lib

Но он по-прежнему терпит неудачу с той же ошибкой. Я могу заставить его работать , если я указать цель для MyLib.dllк lib. Игнорируя предупреждение, которое NuGet дает, он загрузит пакет в следующую структуру папок. .packagesMyLibIF.dll_x86.8.0.0.1libMyLib.dll .packagesMyLibIF.dll_x86.8.0.0.1lib et45MyLibIF.dll

Итак, есть некоторый интеллект, который решает, что MyLib.dll не разрешен внутри net45 ...

c#,c++,nuget,

1

Ответов: 1


0 принят

Попытайтесь внедрить вашу C ++-dll в вашу .Net-dll, таким образом, вы будете иметь только свою .Net-dll для развертывания.

Costura.Fody может помочь вам в этом.

Говоря о ссылках: вам не нужно добавлять ссылку на вашу dll c ++. Может быть причина для вашей проблемы. прочитайте несколько строк над «notspecified»: «Не удалось добавить ссылку на« MyLib ».»

Пойдите, получите проект .Net в VS и попробуйте вручную добавить ссылку на вашу C ++ lib: это shoud fail, и для этого и предназначена ваша обертка.

Взгляните на эти несколько элементов, это должно помочь.

c #, c ++, nuget,
Похожие вопросы