我有一堆小型 C# 项目,它们使用几个 NuGet 包。我希望能够自动更新给定包的版本。更重要的是:如果一个项目使用与其他项目不同的版本,我希望收到警告。
如何在多个 C# 项目之间强制执行相同的版本依赖关系?
我相信我已经找到了解决这个(以及许多其他)问题的设置。
我刚刚意识到可以使用文件夹作为 nuget 源。这是我所做的:
root
+ localnuget
+ Newtonsoft.Json.6.0.1.nupkg
+ nuget.config
+ packages
+ Newtonsoft.Json.6.0.1
+ src
+ project1
nuget.config 如下所示:
<configuration>
<config>
<add key="repositoryPath" value="packages" />
</config>
<packageSources>
<add key="local source" value="localnuget">
</packageSources>
</configuration>
您可以将 Nuget 服务器添加到 nuget.config 以在开发期间访问更新或新依赖项:
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
完成后,您可以复制 .nupkg从缓存中 http://www.hanselman.com/blog/HowToAccessNuGetWhenNuGetorgIsDownOrYoureOnAPlane.aspx to localnuget
文件夹以将其签入。
我喜欢这个设置的三点:
我现在可以使用 Nuget 功能,例如添加道具和目标。如果您有代码生成器(例如 protobuf 或 thrift),这将变得无价。
它(部分)解决了Visual Studio不复制的问题all DLLs http://www.google.com/search?q=visual%20studio%20not%20copying%20referenced%20dll,因为您需要在中指定依赖项.nuspec
file 和 nuget 自动加载间接依赖项。
我曾经为所有项目使用一个解决方案文件,因此更新 nuget 包更容易。我还没有尝试过,但我想我也解决了这个问题。我可以为我想要从给定解决方案导出的项目提供 nuget 包。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)