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. Exchange Server 2010 全新部署篇九:CASHUB中客户端访问功能配置篇
  2. 【安全实战】红队攻防技术
  3. 「后端小伙伴来学前端了」Vuex进阶操作,让你的代码更加高效(简称如何学会偷懒 【手动狗头】)
  4. 计算机pc软盘不能数字,老人把遗嘱存5寸软盘难坏家人 老电脑终未读出
  5. 运维学习之进程的定义及其命令的使用
  6. 内存溢出_关于PermGen Space内存溢出解决方案
  7. [JZOJ5866]【NOIP2018模拟9.13】指引
  8. 基于centos8搭建zookeeper集群
  9. 掘进循环作业图表_Word版本。煤矿安全生产标准化评分方法(2020)8.4 掘进
  10. 「ECharts」电商平台数据可视化实时监控系统之后台开发
  11. apache Apache winnt_accept: Asynchronous AcceptEx failed 错误的解决
  12. 突发!百度张亚勤退休
  13. 如何使用Git SVN工具 -- TortoiseGit(小乌龟)将本地项目上传至GitEE?【超详细教程】
  14. 微信开放平台授权流程
  15. 汽车一键启动 汽车手机远程启动系统  汽车无钥匙进入 手机APP控车智能防盗
  16. GYM CERC 16 K Key Knocking 构造
  17. “宅米”VS“校呵呵”竞品分析报告
  18. C#控件篇 - 图表控件chart - 添加辅助边界线条
  19. 撤回的消息服务器还可以看到,微信消息被撤回,居然还能看到!原来还有11个你不知道...
  20. 游戏最终排名预测--kaggle项目笔记

热门文章

  1. 陈坤担任探鲜官 全球首台果蔬除农残冰箱在中国诞生
  2. 美科技巨头每秒能赚多少钱?苹果11376元、谷歌6691元
  3. shell条件语句及循环语句
  4. 大数据Ambari自定义服务详细介绍
  5. 免费最新iOS 13.0、iOS 13.1真机调试包,不需要积分
  6. matlab程序循环,matlab循环程序只得到一个结果
  7. pandas中常用函数
  8. Arm架构之系统调用
  9. 咸鱼菌玩3D—123D 快捷键
  10. 动画解决TCP 三次握手与四次挥手(附十道面试题)