Nuget Reference 丢失问题
现象
在 Visual Studio 2017 中创建一个控制台项目。创建出来的项目如下所示。

通过 NuGet 管理器,添加 Newtonsoft.Json 的 NuGet 包,安装之后,项目中添加了一个 packages.config 文件。

内容如下:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net461" />
</packages>
然后,在这个文件上右键,将它合并到 PackageRerefence 中。

完成之后,可以在项目的 References 中看到已经合并了。

但是。这个时候,你直接打开项目文件,是看不到这个引用的。也就是说,它没有被写入到项目文件中。

解决方案
1. 退出 Visual Studio
直接关闭 Visual Studio,就会看到一个保存文件的提示框,这就是保存修改之后的项目文件。

保存之后的内容就变成了如下所示。
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json">
<Version>12.0.3</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
2. 不退出,直接重新构建
我一般不会经常关闭 Visual Studio。那么,你可以重新构建一下项目,这样会直接保存项目文件,而且没有提示。
删除依赖的问题
加进来了,怎么删除该依赖呢?
你可以直接打开项目文件,并删除关于 nuget 包的引用。但是你会发现该依赖仍然存在。
<ItemGroup>
<PackageReference Include="Newtonsoft.Json">
<Version>12.0.3</Version>
</PackageReference>
</ItemGroup>
但是,你还是会在解决方案管理器中看到对它的依赖,甚至你在整个项目中都搜索不到关于它的文本。但它确实还是存在。
解决的方式,打开项目下的 obj 文件夹,会看到关于 nuget 的几个文件。

把它们全部删除掉,这个依赖就会消失了。
Nuget Reference 丢失问题的更多相关文章
- 访问vsts私有nuget
访问vsts私有nuget Intro 有时候我们可能要自己搭建一个 nuget,如果不对外公开,即包浏览也是需要权限的,那我们应该怎么做才可以支持在哪里都可以正常的还原包呢? 我是在 VSTS(Vi ...
- Nuget 自定义配置(官网)
<?xml version="1.0" encoding="utf-8"?> <configuration> <config> ...
- nuget cli常用命令简介
起因:使用nuget,但是部分同事用的mac,不能用vs的包管理器查看私有nuget库里面的包,所以,就总结了几个常用的 nuget cli 命令,方便全平台使用nuget 废话不多,直入主题 准备: ...
- 一文了解Nuget的使用
Nuget介绍 官网定义:NuGet是.NET的软件包管理器(免费).NuGet客户端工具提供了生成和使用软件包的能力.NuGet Gallery 是所有软件包作者和消费者都使用的中央软件包存储库. ...
- nuget 包管理器
nuget 是.Net平台上的包管理器, 对于包的发布(打包 package)和消费(下载依赖管理)都有很好的支持, 本文仅仅关注消费端, =======================nuget项目 ...
- Nuget一键打包上传以及高级应用
Nuget是什么不用多说,大家应该也没少用过Nuget, 不少人也应该使用过工具打Nuget包,接下来先一步步说明如何使用脚本完成Nuget一键打包 Nuget一键打包 配置Nuget环境 下载地址: ...
- nuget 包是如何还原包的
nuget 是如何还原包的 Intro 一直以来从来都是用 nuget 包,最近想折腾一个东西,需要自己搞一个 nuget 包的解析,用户指定 nuget 包的名称和版本,然后去解析对应的 nuget ...
- 使用 nuget server 的 API 来实现搜索安装 nuget 包
使用 nuget server 的 API 来实现搜索安装 nuget 包 Intro nuget 现在几乎是 dotnet 开发不可缺少的一部分了,还没有用过 nuget 的就有点落后时代了,还不快 ...
- NuGet私有服务器ProGet Docker搭建和公司中实战用法
一.什么时候需要用到NuGet私有服务器 很多公司中架构师会搭建一个统一的项目基础架构模板,然后全部新项目都会拿这个基础架构来开发新的项目,那架构中就会有很多的中间件,比喻公司内部的封装好的Redis ...
- 在windows通过visual studio远程调试linux mono程序
本文参考文章 https://github.com/techl/MonoRemoteDebugger 1.通过连接https://github.com/techl/MonoRemoteDebugger ...
随机推荐
- Android复习(六)核心组件—>Activity 简介、生命周期、状态变更
1. 可以在activity上声明权限,来保证只在进入某个activity是否有某种权限 <manifest> <activity android:name="....&q ...
- Android复习(三)清单文件中的元素——>action、activity-alias、category、compatible-screens、data
<action> 语法: <action android:name="string" /> 包含于: <intent-filter> 说明: ...
- 什么是AI网关?AI网关在企业系统中承担什么角色?
AI 大模型的发展正在推动各行业的增长,据有关报告显示:"未来十年内预计年均增长率将达到37.3%,全球企业预计在2027年之前将在AI领域投入8000亿美元".这一迅猛发展促使许 ...
- 为Linux安装NVIDIA显卡驱动
Linux如何安装NVIDIA驱动 我使用的是Debian系列的Kali Linux,X11,Gnome,4060 我想要安装的是NVIDIA自家的独显驱动程序 下文展示的是为Debian系列安装NV ...
- PHP实现断点续传
解释 业务上要求对资源文件进行加密,遂实现通过php接口调用,修改header头,传输流的方式. 测试中,在苹果手机上,如果文件过大(大概10M以上),会主动调用多次接口.此时如果不使用断点续传的方式 ...
- Visual Studio 2022只能使用WSL调试问题处理
删除项目的Properties目录下面的launchSettings.json文件
- 配置和使用nvm免安装版本(nvm-noinstall.zip)
配置和使用nvm免安装版本(nvm-noinstall.zip) NVM(Node Version Manager)是一个用于管理多个Node.js版本的命令行工具一下分几个步骤说明如何配置和使用nv ...
- Go语言基础05 _string
Go语言基础05 _string 1.基本使用 package string import "testing" func TestString(t *testing.T) { va ...
- CentOS 7环境下DM8数据库的安装与配置
一.环境准备 首先,确保你的系统已经安装了CentOS 7,并且具有足够的磁盘空间和内存来支持DM8数据库的运行.此外,你还需要具备管理员权限,以便进行后续的安装和配置操作. 二.下载DM8安装包 访 ...
- 高效链接,极致体验:新时代的NFC智能互动系统
在科技不断发展的今天,数字化互动方式的创新已经成为提升用户体验和企业品牌价值的重要环节."碰一碰"系统应运而生,为新时代的社交传播.品牌推广和智能互动提供了一个前所未有的平台. 一 ...