热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSharp工程中的几个文件

以下基于.NETFramework4.6及.NETCore2.0.csproj用于配置项目信息,如:程序集名称、类型Framework版本项目所包含的文件信息,如:cs、html、

以下基于.NET Framework4.6及.NET Core2.0

.csproj

用于配置项目信息,如:

  • 程序集名称、类型
  • Framework版本
  • 项目所包含的文件信息,如:cs、html、js、config、xml等
  • 项目所引用的程序集信息,包含本地dll与Nuget包
  • 其它信息

Visual Studio中对项目所做的配置,均可在该文件中表现出来。同样,Visual Studio也是根据该文件中的内容来加载项目的。抛开Visual Studio的其它功能,可以将其看作是.csproj文件的图形管理工具。

Web.config & App.config

.NET Framework

使用Visual Studio创立Web项目(MVC或者Web Api)时,会在根目录生成Web.config文件。创立控制台程序则会生成App.config文件。以Web.config为例,该文件用于配置Web项目运行时所需的信息,如:

  • Framework版本信息

  • 编译器信息

  • 所引用的程序集信息

    注意,这里所引用的是项目在运行时所需的程序集,而.csproj中形容的程序集是项目中增加的引用,二者有区别:项目中增加的引用在运行时未必会用到。

    若项目启动后报错:未能加载文件或者程序集“XXXXXX”或者它的某一个依赖项,找到的程序集清单定义与程序集引用不匹配,则应当检查下项目所引用的dll文件与Web.config中配置的dll文件信息能否一致。

    点击此处,可查看关于配置文件中bindingRedirect的解释。

.NET Core

.NET Core官方项目模板中默认不生成App.config或者Web.config。注意,.NET Core项目(Console、ASP.NET Core)本质上是控制台程序,若要使用XML格式作为配置文件,建议使用App.config。

Nuget & packages.config

Nuget

Windows系统中,可通过%AppData%\NuGet\NuGet.config对Nuget进行配置,文件结构如下:

.NET Framework

packages.config是项目中用于管理Nuget包的引用的文件,对于Nuget包的操作(增加、删除与版本变更)都会反映到该文件中。也可以直接操作该文件来修改项目中的Nuget包,但不建议这么做。文件结构如下:

默认在sln文件所在目录下会生成packages文件夹用于存放项目引用的Nuget包:

packages_floder

我们通过Nuget命令行或者者Visual Studio中的图形界面来管理Nuget包,当Nuget包发生变更时,packages.config与.csproj文件内容及packages文件夹都会发生相应的变化。如,我们增加对Dapper的引用后

packages.config:

.csproj:

..\packages\Dapper.1.50.0\lib\net451\Dapper.dll

若直接修改packages.config中的内容,如,直接删除packages.config中对某个包的引用,.csproj文件中仍然保留了对该包的引用,及packages文件夹中也会保留该包。这样很有可能导致项目引用的混乱,所以,不建议直接操作packages.config文件。

.NET Core

.NET Core项目中不在使用packages.config文件文件管理Nuget包,对于Nuget包的引用直接反映到.csproj文件中:

netcoreapp2.1

sln文件所在目录下也没有packages文件夹。Windows系统下.NET Core中Nuget包位于%UserProfile%\.nuget\packages

可以使用.NET Core提供的CLI中的命令来获取nuget包的位置:

dotnet nuget locals all -linfo : http-cache: C:\Users\xfh\AppData\Local\NuGet\v3-cacheinfo : global-packages: C:\Users\xfh\.nuget\packages\info : temp: C:\Users\xfh\AppData\Local\Temp\NuGetScratchinfo : plugins-cache: C:\Users\xfh\AppData\Local\NuGet\plugins-cache

也可以使用Nuget自身命令来获取nuget包位置:

nuget locals all -linfo : http-cache: C:\Users\xfh\AppData\Local\NuGet\v3-cacheinfo : global-packages: C:\Users\xfh\.nuget\packages\info : temp: C:\Users\xfh\AppData\Local\Temp\NuGetScratch

小结

以上,是自己的少量总结,与大家分享。

推荐阅读

Assembly Binding redirect: How and Why?


推荐阅读
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
  • 在探讨如何在Android的TextView中实现多彩文字与多样化字体效果时,本文提供了一种不依赖HTML技术的解决方案。通过使用SpannableString和相关的Span类,开发者可以轻松地为文本添加丰富的样式和颜色,从而提升用户体验。文章详细介绍了实现过程中的关键步骤和技术细节,帮助开发者快速掌握这一技巧。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • 在 CentOS 7 系统中安装 Scrapy 时遇到了一些挑战。尽管 Scrapy 在 Ubuntu 上安装简便,但在 CentOS 7 上需要额外的配置和步骤。本文总结了常见问题及其解决方案,帮助用户顺利安装并使用 Scrapy 进行网络爬虫开发。 ... [详细]
author-avatar
夏晶阳--艺术
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有