如何在CI流水线通过NuGet CLI生成C#项目的package.lock.json(无需改项目)
可以通过CLI实现,无需修改项目文件
完全可以直接用CLI命令生成package.lock.json,不用开发人员改动项目文件里的MSBuild属性,两种常用方式如下:
针对.NET Core/.NET 5+项目(dotnet CLI)
在dotnet restore命令里附加MSBuild属性参数,强制开启锁文件生成:
dotnet restore -p:RestorePackagesWithLockFile=true
执行后会在项目根目录生成package.lock.json,项目文件原有配置不受影响。如果需要每次restore时更新锁文件(比如依赖有新版本),可以加上LockFileMode参数:
dotnet restore -p:RestorePackagesWithLockFile=true -p:LockFileMode=Update
针对.NET Framework项目(NuGet CLI)
如果是传统.NET Framework项目,用NuGet CLI也能实现:
nuget restore -MSBuildProperty:RestorePackagesWithLockFile=true
注意事项
- 这些参数仅在当前CLI执行的restore过程中生效,不会修改项目文件,正好满足你不想让开发人员改动配置的需求。
- 在CI流水线中,只需把原有的restore命令替换成带上述参数的版本,后续构建步骤就能正常使用生成的锁文件。
内容的提问来源于stack exchange,提问作者nnay84
相关产品推荐
相关产品推荐

