能否用dotnet build输出所有程序集?能否在命令行指定CopyLocalLockFileAssemblies?
嘿,针对你的两个问题,我来给你梳理清楚:
1. 能否用dotnet build输出所有程序集?
默认情况下,dotnet build只会输出项目运行必需的程序集——包括你的项目编译产物,以及直接/间接引用中实际被代码用到的依赖程序集。如果想让所有相关的依赖程序集都出现在输出目录,仅靠默认的build行为是做不到的,但可以通过配置属性来实现,也就是你提到的CopyLocalLockFileAssemblies。
另外补充个小知识点:如果是想拿到完整的部署用程序集,dotnet publish会更合适,它会根据你指定的部署模式(框架依赖/独立部署),把所有运行时或依赖程序集都打包到输出目录,但如果只是开发阶段想拿到所有依赖程序集,用CopyLocalLockFileAssemblies配合build就足够了。
2. 能否在dotnet build命令中指定CopyLocalLockFileAssemblies?
当然可以!完全不用修改项目文件,直接在build命令里通过/p:参数传递这个属性即可,命令格式如下:
dotnet build /p:CopyLocalLockFileAssemblies=true
执行这个命令后,MSBuild会在构建过程中强制将锁定文件(packages.lock.json)里记录的所有依赖程序集都复制到输出目录,效果和你在项目文件里手动设置<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>完全一致。
内容的提问来源于stack exchange,提问作者HelloWorld
相关产品推荐
相关产品推荐

