c# – 以编程方式创建packages.config
我以编程方式生成Visual Studio项目.有问题的项目需要一些Nuget包.
我创建了一个名为packages.config的文件: <?xml version="1.0" encoding="utf-8"?> <packages> <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" /> </packages> 项目第一次运行时,它将下载该软件包.问题是,如果发布新版本,它将始终下载7.0.1版. 有没有办法告诉它获得最新版本?有没有办法以编程方式询问NuGet最新版本是什么,以便我可以在生成时将其添加到我的项目中? 我尝试删除版本并添加版本=“*”两者都没有工作. 更新: <package id="Newtonsoft.Json" targetFramework="net45" /> 出现以下错误
<package id="Newtonsoft.Json" version="*" targetFramework="net45" />
看起来版本是必需的.我希望有人知道某些方法来欺骗它以找到当前版本. 解决方法
您可以使用包上的其他属性告知NuGet允许升级的软件包版本:
<?xml version="1.0" encoding="utf-8"?> <packages> <package id="SomePackage" version="2.1.0" allowedVersions="[2,3)" /> </packages> 但这仍然不会自动升级到最新版本的软件包,只是因为可能存在重大变化.它将允许您的用户相对安全地升级到更高版本,因为您明确告诉他们您已经测试了这些更高版本或信任作者不做出重大更改.另见:https://docs.nuget.org/create/versioning 目前,将软件包锁定到特定版本范围需要手动编辑packages.config文件,并且无法通过UI完成. 执行此操作的官方方法是将项目打包为vsix,在vsix中包含nuget包,并在每次更改依赖项后发布新版本,然后测试新版本是否真正有效. NuGet中没有系统可以自动更新所有包.虽然没有任何东西阻止您使用IWizard interface从您自己的扩展或项目/项目创建向导调用Update-Package’YourPackageName’,以便在项目或项目项目添加到项目和using the NuGet objects to invoke the upgrade task时触发您的代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ExtAspNet快速入门 - 原生Ajax与PageManager控件
- cocos2d 3.1.1环境配置与项目创建浅述
- xml文件的根节点layout_width或者layout_height设置无效果的
- 在WinForm C#中使用System.Threading.Timer进行间隔的射击方
- Dojo如何加载主题?
- ruby-on-rails – 任何好的ruby(在轨道上)编辑器?
- 根据下拉值,使用ajax动态获取数据(在页面显示数据)
- 删除Flash控件的 Flash9e.ocx和FlashUtil9e.exe
- 给AJAX回调函数传入参数
- c# – `fixed` vs GCHandle.Alloc(obj,GCHandleType.Pinned