Пакет 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 в проект. Мне пришлось скопировать файл из папки с моим решением, так как у моего проекта еще нет файла. Выполнение этого исправляло оба симптома.