VC项目安装Nuget之后导致项目过期

背景

有时候会突然C++项目发现安装nuget包之后,项目一直处于过期状态,哪怕代码并没有更改,调试时也会提示过期要求重新编译。

分析

这种明明没有任何文件更改但是项目总是过期的情况一般来说有可能有2种原因:

  • 解决方案管理器中包含了已经删除的头文件
  • 有文件的修改日期大于当前时间(通常在修改时间测试的场景下出现)

首先经过检查排除了第一点,第二点涉及到的文件太多,所以先在VS的项目和解决方案的生成并运行设置中将MSBuild项目生成输出详细程度调整为诊断级别,然后开始构建。
输出中立刻就能发现过期的文件,其指向了一个nuget包中的头文件。

打开此文件的实际路径,发现果然此文件的修改日期比当前日期大了几个小时。

解决

那么解决方案很简单,把这些文件全部重新编辑一下,刷新文件修改时间到现在即可。
或者干脆等待这些文件的修改时间到期,毕竟就几个小时。

原理

但是我们还需要搞清楚,为什么这个nuget包中的文件的时间会比当前时间超前。

首先重复删除安装后可以确定这个时间时固定的,和安装时间没有影响。

那么这个时间就应该和打包nuget的时间有关系,nuget本质上是使用了zip进行打包的。

使用zip查看软件打开nuget包后可以看到,nuget包中的文件的修改时间的确是比当前时间要超前。

仔细观察了一下,这个时间恰好是nuget的打包时间加上8个小时,8个小时这个值给出了一个非常明显的提示,中国是东8时区。

所以至此可以确定nuget打包时没有处理时区偏移,所以导致nuget包中文件的修改时间相比真实时间提前了8个小时。要彻底解决这个问题只能等到nuget官方解决了。

我使用的是nuget4.1.0.时间原因没有测试新版本nuget是否有修复这个问题,不过因为最多8小时就能恢复,所以影响不大。

总结

VC项目安装Nuget之后导致项目过期的根本原因就是nuget打包时没有处理时区偏移,导致nuget包中文件的修改时间相比真实时间提前了8个小时。

长期来说可以等待nuget官方在新版本中修复此问题,短期来说等待8小时此问题即可自动修复。

VC项目安装Nuget之后导致项目过期相关推荐

  1. 第一次搭建vue项目--安装vue-cli、初始化项目

    vue-cli === vue脚手架 不用自己动手一点点搭,用npm安装vue-cli后,输入几个命令它就给你自动搭好 1. 使用npm全局安装vue-cli npm i -g vue-cli 2. ...

  2. vue项目安装less_部署vue项目、安装mongodb

    一.node运行环境 1.npm install -g n 通过npm 全局安装node 2.sudo n 8.16.0 设置node版本 Password: install : node-v8.16 ...

  3. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试...

    最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...

  4. uniapp 鸿蒙,关于前端:uniapp项目安装运行操作手册

    一,装置运行环境 1.下载node.js node.js下载链接node.js 请下载长期反对版. 2.装置node.js 装置教程百度可查这里就不具体阐明了,装置教程地址链接 3.验证node是否装 ...

  5. Nuget添加新项目的问题

    为已有的几个项目添加了一个nuget package 后,在解决方法中添加了一个新项目,然后想把这个nuget package添加到这个新建的项目中去,可以此时无法添加. 怎么办那? [解决方法] T ...

  6. Windows10安装并使用Unity3D项目AirSim教程(附问题解决方案及相关库下载)

    GitHub项目网址 https://github.com/microsoft/AirSim,官方安装教程页面 https://github.com/microsoft/AirSim/blob/mas ...

  7. jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...

    经常由于本地的开发环境和服务器上的生产环境不同,导致项目部署过程中会遇到各种插曲,现在有了jfinal undertow,终于可以摆脱tomcat等各种配置,但是开发环境的JDK和服务器上的JDK版本 ...

  8. vs2010无法打开项目文件,此安装不支持该项目类型解决方法

    今天在用vs2010打开一个之前做的Web项目时提示:无法打开项目文件,此安装不支持该项目类型解决方法 网上查了很多资料,都是说:原因是vs2010需要把mvc升到3,默认的vs2010的mvc是2. ...

  9. SqlSugar 1.项目安装

    文章目录 1.使用Nuget 2.安装 2.1 安装 SqlSugar 2.2 安装 SqlSugarCore 1.使用Nuget 详细说明 SqlSugar .Net Framework可用 需手动 ...

最新文章

  1. 染成茜色的坂道 汉化版攻略
  2. Redis 哨兵架构基础
  3. 跨站脚本(XSS)漏洞 (一)
  4. Vue.js:监听属性
  5. Vue(ES6)中的data属性为什么不能是一个对象?
  6. 奇妙的 CSS shapes(CSS图形)
  7. 2.PHP利用PDO连接方式连接mysql数据库
  8. 基于JWT的身份认证学习笔记
  9. 5种SpringBoot热部署方式,你用哪种?
  10. linux moxa 多串口卡_MOXA多串口卡C32030TCPU模块双RISC-based处理器架构大幅提升I/O数据传输的效能达到8口或以上...
  11. 智能一代云平台(三十一):mybatis加入分页
  12. 设计模式C++学习笔记之二(Proxy代理模式)
  13. zookeeper核心面试问题及解答
  14. web调试代理工具Whistle
  15. 利用Python批量把flv文件转换成mp4文件
  16. vue3 自定义指令 directive
  17. DNS知识及域名解析内容深入浅出超详细总结附DNS配置教程
  18. 2006年上市公司A股市值百强榜单
  19. 运用python编写凯撒密码并实现_凯撒密码实现英文短句的加解密
  20. mongo地理坐标计算距离

热门文章

  1. mac java visualvm_VisualVM连接远程Java进程
  2. CATransaction
  3. [gdc18] farcry5地形技术
  4. 关于springboot项目的tomcat之url解码问题
  5. golang goroutine实现_Golang 的 goroutine 是如何实现的?
  6. JAVA基础类库(第四周)(三只松鼠,奥利给)
  7. ➷HTML+CSS前端笔记(基础篇-第一部分)
  8. 【Mac】屏幕放大缩小进行==演示效果拉满
  9. 【python圣诞树】圣诞节来了,还不快给女友来画一棵属于她的圣诞树
  10. RS瑞森半导体LLC恒流方案RSC6105S的案例分享