3

我们使用Visual Studio编写和维护本机Windows应用程序。我们正在研究使用NuGet来处理我们的依赖关系,它由本地静态库组成。有没有办法支持NugGet和本地库的快照?

经过一番研究,我设法使用NuGet,package.config和CoApp PowerShell脚本创建并使用NuGet包,并在其中包含本机库。我们现在面临的问题是我们需要有快照支持。

但NuGet 3支持的翻转PreRelease机制(带*版本翻转)看起来很好,但它似乎只能用于project.json而不能用于package.config。但是,Project.json似乎不适用于本地软件包,因为它们没有安装在本地解决方案文件夹中,因此构建无法找到标题和库。

的问题归结为:

  • 是否有使用project.json和的NuGet 3原生静态库的方法吗?
  • 如果没有,那么,有什么替代方案支持这种用例呢? (用例是本机非托管Windows静态库的构建时依赖关系分布)。

编辑:

最后,我们决定使用Maven依赖管理以来的NuGet似乎并不支持我们的用例。我在两周前提交了一个问题,但没有收到任何回复。但是,如果我们决定强迫NuGet进入我们的用例,Wendy提出的解决方案可能会成为一种方式,所以我接受了它。

回答

1

有两种方法可以将内容文件添加到使用project.json文件的项目中。一个是“contentFiles”节点,另一个是nuspec文件中的“files”节点。详细步骤请参考:

http://blog.nuget.org/20160126/nuget-contentFiles-demystified.html

但请注意,这些方式只支持UWP和便携式类库。

此功能仅适用于将安装到使用project.json文件管理的项目的软件包。 目前只有两个项目类型由project.json管理。

1.UWP应用

2.Portable类库

的contentFiles选项不可用于其他项目类型

如果您使用的是.NET的核心应用程序或其他类型的项目使用project.json时,目前不支持nuget包中的内容文件添加到项目中。

+0

感谢您的回答。听起来很有希望。不幸的是,CoApp工具的使用使我们能够抽象出不同的二进制文件用于不同配置的问题,这实际上会使其复杂化。但它可能是有用的。 此外,这将使我们手动设置包含和链接器位置,这是由CoApp生成的包通过.targets文件自动完成的。 – dhcarmona

+0

我发现静态库不会被添加到直接使用project.json文件的项目中,但它们被列在project.lock.json文件中。你可以在这个文件中搜索它们。 –

+0

根据yishaigalatzer在这个问题上的回复,它只支持在当前版本的project.json中:https://github.com/NuGet/Home/issues/1891但是下面的线程提供了一种替代方法:http:// stackoverflow .COM /问题/ 26835197 /的NuGet-缓存和版本控制问题 –

相关问题