Nuget 自动注入不适用于本机C++;项目

Nuget 自动注入不适用于本机C++;项目,nuget,nuget-package-restore,Nuget,Nuget Package Restore,我正在使用Visual Studio 2013的NuGet v2.8.50506.491中的自动包还原 我已使用{package ID}.props文件将生成文件夹添加到我的包中。但是,文件显然没有在恢复时注入vcxproj。软件包及其所有内容正在正确还原,但在vcxproj属性中看不到任何定义。如果在内存中发生属性注入,但由于未继承props中明确定义的路径,生成失败,则可能会出现这种情况 如果我在本地包存储库中添加对props文件的显式引用,则项目将成功构建,因此props文件中的路径没有问

我正在使用Visual Studio 2013的NuGet v2.8.50506.491中的自动包还原

我已使用{package ID}.props文件将生成文件夹添加到我的包中。但是,文件显然没有在恢复时注入vcxproj。软件包及其所有内容正在正确还原,但在vcxproj属性中看不到任何定义。如果在内存中发生属性注入,但由于未继承props中明确定义的路径,生成失败,则可能会出现这种情况

如果我在本地包存储库中添加对props文件的显式引用,则项目将成功构建,因此props文件中的路径没有问题

我还尝试在build下的“native”子文件夹中添加道具,但也没有效果

nuspec的提取物:

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

我还尝试了一个目标文件而不是/以及一个道具文件,但这也不起作用

我应该补充的是,我已经在sln文件夹中定义了Nuget.config,并具有指向我的软件包存储库的绝对路径:

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


我今天遇到了这个问题,最终我意识到.nuspec和.targets文件的名称与包的id不同,这显然是个问题。重命名.nuspec和.targets文件以匹配包id使NuGet开始正确地注入vcxproj。我不确定这两个文件中的哪一个是问题所在,或者两者都是问题所在,但现在这三个名称都匹配了,它工作正常。

注入
.targets
.props
文件引用仅在安装NuGet软件包时发生。这与.NET项目相同,其中程序集引用仅在包安装时创建


稍后,当您构建项目时,包还原机制只是下载并提取NuGet包,以便以前“悬空的”.target/.props/assembly引用成为有效引用。

我自己也在努力解决这个问题。直接在nuspec文件中声明.targets文件(不是通过构建目录中的NugetConvention,它似乎不起作用)就足够了。感谢@n.podbielski在上面的评论,让我知道可能需要匹配$id$的文件名。