Автоматическое внедрение файлов props/target не работает для собственного проекта C++

Я использую автоматическое восстановление пакета в NuGet v2.8.50506.491 с Visual Studio 2013.

Я добавил папку сборки в свой пакет с файлом {package ID}.props. Однако файл, по-видимому, не внедряется в vcxproj во время восстановления. Пакет и все его содержимое восстанавливаются правильно, но ни одно из определений не отображается в свойствах vcxproj. Этого можно ожидать, если внедрение свойства происходит в памяти, но сборка завершается неудачно из-за путей, которые четко определены в подпроцессах и не были унаследованы.

Если я добавлю явную ссылку на файл props в мой локальный репозиторий пакетов, проект будет успешно собран, поэтому проблем с путями в файле props не возникает.

Я также попытался добавить реквизиты в "родной" подпапке при сборке, также безрезультатно.

Выписка из nuspec:

<file src="build\MyPackage.targets" target="build\MyPackage.targets" />

Я также попробовал файл цели вместо /, а также файл реквизита, но это тоже не работает.

Я должен добавить, что я определил Nuget.config в папке sln с абсолютным путем к моему репозиторию пакетов:

<config>
  <add key="repositoryPath" value="C:\Packages" />
</config>

2 ответа

У меня была эта проблема сегодня, и в конце концов я понял, что имена моих файлов.nuspec и.targets отличались от идентификатора моего пакета, что, очевидно, является проблемой. Переименование файлов.nuspec и.targets в соответствии с идентификатором пакета заставило NuGet начать корректную инъекцию в vcxproj. Я не уверен, какой из двух файлов был проблемой, или если это было оба, но это работает правильно теперь, когда все три имени совпадают.

Инъекция .targets а также .props Ссылка на файл происходит только в тот момент, когда вы устанавливаете пакет NuGet. Это то же самое, что и в проектах.NET, где ссылки на сборки создаются только во время установки пакета.

Позже, когда вы создаете проект, механизм восстановления пакета просто загружает и извлекает пакет NuGet, так что ранее "висящие" ссылки.target / .props / assembly становятся действительными ссылками.

Другие вопросы по тегам