【发布时间】:2023-01-13 21:40:20
【问题描述】:
我们有一个仅限 Windows 的 WPF 桌面应用程序,我们刚刚从 .NET Framework 4.8 迁移到 .NET 6.0。我们已经编译了所有内容,但是构建系统让我们很头疼。
我们的大部分代码都存储在一个连接到互联网的 git 仓库中。当我们构建时,所有 Nuget 包都按预期恢复。但是,packages 文件夹现在包含 200 多个包,而对于 .NET Framework 4.8,它仅包含我们通过 Visual Studio 中的 Nuget 包管理器明确添加的那些包(大约 20 个)。
Q1:我的理解是,这就是现在的工作方式,因为一切,包括任何 Microsoft、系统和运行时 dll,现在都是 Nuget 包本身。我的理解正确吗?
现在,这不是问题除了我们有自己的另一个开发环境离线git repo,包含在线 git repo 中的所有代码加不能包含在在线仓库中的附加代码。为此,我们必须定期将“在线代码”复制到离线机器,合并两个代码库,然后将更改提交到离线仓库。我希望这很清楚。
由于 OFFLINE git repo 无法连接到互联网,我们也被迫复制 Nuget 包。同样,这在 .NET Framework 4.8 下不是问题,因为它是一小组包。现在 Nuget 包已经增长到 200 多个,大小接近 1.5GB,这使一切都变慢了——压缩、复制、刻录、解压缩、合并等。
我们想要做的是让 packages 文件夹只包含那些 Nuget 包必需的从互联网上下载,然后从本地系统中提取其他 dll - Microsoft、系统、运行时等。
Q2:我假设在安装.NET 6.0 SDK 时,这些包在本地系统上都是可用的。这个假设正确吗?
我们尝试在 nuget.config 文件和各种 MSBuild 设置中搞乱,但无济于事。
谁能指出我们正确的方向?
【问题讨论】:
标签: .net msbuild nuget .net-6.0 visual-studio-2022