C#版本与NET版本对照
C#12.0 | .NET8(2023) |
C#11.0 | .NET7(2022) |
C#10.0 | .NET6(2021) |
C#9.0 | .NET5(2020) |
C#8.0 | .NET Framework4.8(2019-04-18) |
C#7.3 | .NET Framework4.7.2 |
VS错误:找不到project.assets.json
工具->命令行->开发者命令提示->输入msbuild -t:restore
https://learn.microsoft.com/zh-cn/nuget/consume-packages/package-restore-troubleshooting
nuget清除缓存
清空资源管理器,删除生成目录000_exe文件夹,删除sln同级的packages文件夹,删除C盘用户目录中的.nuget文件夹,删除所有bin/obj文件夹
dotnet format -v d命令格式化
修改nuget_packages的缓存地址
nuget_packages默认缓存地址是 C:\Users\win\.nuget\packages,可能这个目录会有几十G
找到 C:\Users\win\AppData\Roaming\NuGet\NuGet.Config,一般存放在路径C:\Users\用户\AppData\Roaming\NuGet\NuGet.Config
下,打开该文件,在configuration
节点下添加如下配置即可
<config> <add key="globalPackagesFolder" value="D:\Program Files\nuget_packages" /> </config>
修改本地包的默认位置
本地包默认位置:C:\Program Files (x86)\Microsoft SDKs\NuGetPackages,将其修改到D盘 D:\Program Files (x86)\Microsoft SDKs\NuGetPackages
两步操作:一是把所有的内容从C:\Program Files (x86)\Microsoft SDKs\NuGetPackages复制到D:\Program Files (x86)\Microsoft SDKs\NuGetPackages;二是修改C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config中的路径
用于解决在nuget包和自己的private包,之间存在同名库文件,用于指定每个包是来自全网nuget还是自己的私有库
包源映射
用于解决在nuget包和自己的private包,之间存在同名库文件,用于指定每个包是来自全网nuget还是自己的私有库
https://learn.microsoft.com/zh-cn/nuget/consume-packages/package-source-mapping
中央包管理
https://learn.microsoft.com/zh-cn/nuget/consume-packages/central-package-management
对解决方案右击->添加->新建项
使用dotnet-tocpm创建CPM
https://github.com/DEVDEER/dotnet-tocpm
dotnet tool install -g devdeer.tools.tocpm 安装这个插件 tocpm -h 检查是否安装好 tocpm simulate . 分析当前程序的包引用情况 tocpm execute . 生成Directory.Packages.props y yes
git大文件管理
https://git-lfs.com/
开发者PowerShell常用指令
dotnet list package
新建gitignore
VS2022智能提示支持NET6的汉化
工具->命令行->开发者PowerShell
dotnet tool install -g islocalizer islocalizer install auto -m net6.0 -l zh-cn islocalizer build -m net6.0 -l zh-cn -cc OriginFirst -sl '---------'k
可以通过islocalizer -h查看更多的命令帮助
这种方式更新的C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.25\ref\net6.0下的xml,会增加两个“zh-cn”、“zh-hans”两个文件夹,但由于.NET 6引入了新的工作方式,使用了SDK-style项目文件和更灵活的NuGet包管理,需要将“zh-cn”、“zh-hans”两个文件夹从C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.25\ref\net6.0复制到C:\Users\win\.nuget\packages\microsoft.netcore.app.ref\6.0.27\ref\net6.0,后者的目录取决于下一张地址
右击文件夹可用VSCode打开
VSCode打开sln后代码区不染色
需要设置语言模式
Task.Wait()、Result和Task.GetAwaiter().GetResult()的区别
Task中遇到异常,前者会被包在AggregateException,后者是直接的异常;可以用于后者代替前者