在c#开发中,几个关键的配置文件起着至关重要的作用。以下是对这些文件的详细介绍和使用指南:
.csproj
.csproj文件是项目配置文件,用于定义项目信息,如:
- 程序集名称
- 目标Framework版本
- 项目包含的文件信息(如.cs、.html、.js、.config、.xml等)
- 项目引用的程序集信息,包括本地dll和Nuget包
- Visual Studio中对项目的配置
Visual Studio根据.csproj文件的内容来加载项目,可以将其视为.csproj文件的图形化管理工具。
Web.config & App.config
在.NET Framework中,创建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
网格图片手风琴jquery特效代码,结合网格手风琴缩略图和手风琴面板的功能,给你展示你的图片网站一个有趣的方法。你可以选择使用XML或HTML。功能强大的API将允许进一步提高这个jQuery插件的功能,可以方便地集成到您自己的应用程序。兼容主流浏览器,php中文网推荐下载! 使用方法: 1、在head区域引入样式表文件style.css和grid-accordion.css 2、在head
packages.config是项目中用于管理Nuget包引用的文件,对于Nuget包的操作(添加、删除与版本变更)都会反映到该文件中。也可以直接操作该文件来修改项目中的Nuget包,但不建议这么做。文件结构如下:
默认在sln文件所在目录下会生成packages文件夹用于存放项目引用的Nuget包:

我们通过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
Windows系统下.NET Core中Nuget包位于
%UserProfile%\.nuget\packages。
可以使用.NET Core提供的CLI中的命令来获取nuget包的位置:
dotnet nuget locals all -l info : http-cache: C:\Users\xfh\AppData\Local\NuGet\v3-cache info : global-packages: C:\Users\xfh\.nuget\packages info : temp: C:\Users\xfh\AppData\Local\Temp\NuGetScratch info : plugins-cache: C:\Users\xfh\AppData\Local\NuGet\plugins-cache
也可以使用Nuget自身命令来获取nuget包位置:
nuget locals all -l info : http-cache: C:\Users\xfh\AppData\Local\NuGet\v3-cache info : global-packages: C:\Users\xfh\.nuget\packages info : temp: C:\Users\xfh\AppData\Local\Temp\NuGetScratch
小结
通过以上介绍,我们可以了解到.csproj、Web.config/App.config、packages.config等文件在C#项目中的重要作用和使用方法。正确配置这些文件对于项目的顺利运行和管理至关重要。









