4

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

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

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

我还尝试在正在构建的“本机”子文件夹中添加道具,但也无济于事。

nuspec 的摘录:

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

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

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

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

2 回答 2

2

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

于 2016-09-22T23:39:42.273 回答
0

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

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

于 2017-10-27T11:56:41.430 回答