Пакет NuGet не может добавить ссылку на проект для DLL внутри каталога lib

Я пытаюсь упаковать .NET DLL, которая ссылается на С++ DLL. Файл nuspec выглядит так:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>MyPackage</id>
    <version>1.0.0</version>
    <authors>some author</authors>
    <owners>some owner</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>.NET Wrapper for rebuilt 64-bit version of MyPackage</description>
    <copyright>Copyright 2014</copyright>
  </metadata>
  <files>
    <file src="x64\MyPackage64.dll" target="content" />
    <file src="MyPackageNET.dll" target="lib" />
  </files>
</package>

Когда я просматриваю сгенерированный файл nupkg, внутренняя структура файла выглядит корректно. С++ DLL находится в content, а .NET DLL - в lib.

Когда я устанавливаю nupkg в проект, DLL содержимого добавляется к корню проекта, а DLL библиотеки добавляется в каталог packages.

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

<references>
  <reference file="MyPackageNET.dll" />
</references>

Я что-то делаю неправильно? Я создал другие файлы nuspec и nupkg из varoius.csproj файлов, которые правильно добавляют ссылки на проекты, в которых они были установлены. Есть ли что-то в отношении упаковки отдельных DLL, которые я пропустил, это сохранение ссылки от добавления в проект?

В соответствующей заметке, если я не могу автоматически добавить ссылку, может ли кто-нибудь направить меня к любым ресурсам, которые объяснят синтаксис метода $project.Object.Reference.Add или который поможет мне программно добавить ссылку на DLL для моего проекта?

Ответы

Ответ 1

У меня возникла одна и та же проблема с дополнительными симптомами невозможности удаления пакета. Я следил за указаниями Не удалось удалить/переустановить пакет NuGet, а добавил файл package.config в проект. Мне пришлось скопировать файл из папки с моим решением, так как у моего проекта еще нет файла. Выполнение этого исправляло оба симптома.