2016-01-13 5 views
0

Ссылка на эту тему: Previous QuestionКак найти папку «lib» в ошибке nuget?

Я пробовал все предлагаемые различные решения, однако сохраняется ошибка «Сборка вне папки lib».

Я использовал это ниже nuspec формат файла для других проектов, и это прекрасно работает под мой nuspec файл: командные строки

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>Workflow.Assembly</id> 
    <version>1.0.0.0</version> 
    <title>Workflow.Assembly</title> 
    <authors>MyAuthor</authors> 
    <owners>MyOwner</owners> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>My Description</description> 
    <releaseNotes>My Release notes</releaseNotes> 
    <copyright>Copyright 2016</copyright> 
    <tags>My Tags</tags> 
    </metadata> 
</package> 

PowerShell: NuGet спецификации MyProject.csproj (создает оболочку nuspec файла, отредактировано выглядеть выше образец)

NuGet пакет MyProject.csproj -IncludeReferencedProjects (выход образец) ПРЕДУПРЕЖДЕНИЯ: 11 вопроса (ы) найденный с пакетом 'MyAssembly'.

выпуск: сборка вне папки lib. Описание: Содержимое сборки \ lib \ MyReferenced.dll не находится в папке «lib», и поэтому оно не будет добавлено в качестве ссылки при установке пакета в проект. Решение: переместите его в папку «lib», если на него ссылаются.

Я попытался использовать различные модификаторы <files /> <dependency />, упомянутые в предыдущем вопросе, но все же я получаю сообщение об ошибке.

К какой папке относится эта папка «lib», как я могу получить абсолютный путь (если путь - это то, что он хочет), где nuget ожидает, что зависимая dll будет находиться?

ответ

2

Добавить раздел 'files' в свой nuspec, связанный с выводом вашего проекта в папку 'lib'.

<files> 
    <file src="bin\Release\MyAssembly.???" target="lib" /> 
</files> 

https://docs.nuget.org/create/nuspec-reference

+3

Это часть ответа, однако, я также добавил библиотеки DLL в папку «Lib» в проекте. Затем при создании проекта эти DLL ссылались и не переносятся в bin \ debug. Как только я удалил DLL из проекта, пакет nuget собрался в порядке. Добавление раздела помогло правильно обновить ссылки на целевые проекты. Кстати, в случае, если кто-то новичок в создании пакета nuget, папка «lib» - это папка вывода двоичных файлов visual studio, обычно bin \ debug по умолчанию, если вы не изменили ее. – user3683706

+0

@ user3683706 Спасибо за явное указание, что 'lib' действительно' bin \ debug', а не папка с именем 'lib'! –

+1

Во избежание предупреждения 'ПРЕДУПРЕЖДЕНИЕ: Описание: сборка 'lib \ MyAssembly. ???' размещается непосредственно в папке «lib». Рекомендуется, чтобы сборки были размещены внутри папки, специфичной для структуры. ', Просто измените' target = "lib" 'на' target = "lib \ net45" '(или соответствующую версию). –