添加 NuGet 包后 Clickonce 部署大小激增

Clickonce Deployment Size Ballooned After Adding NuGet Package

我正在处理我在 VS2017 中创建的一个 Winforms 应用程序。我正在 VS2019 中进行新工作。该应用程序包含 Winforms 报告查看器控件,该控件在 VS2019 中无法正常工作,因此我按照 中给出的建议使一切重新正常工作。这意味着,将 nuget 包添加到项目中,并直接从项目目录中的 "packages" 文件夹中引用所需的库。

应用程序现在运行良好,但是,当我尝试使用 clickonce 进行发布时,问题就来了。在 "Publish" > "Application Files..." 下有比以前更多的引用(没有 nuget 包),当我发布时我的部署大小已经膨胀到 80+mb。这是一个全局应用程序,通过 WAN 复制 80+mb 可能会有点耗时。

如果有人可以建议我如何恢复到较小的部署规模,将不胜感激。谢谢

应用程序是:.NET Framework 4.5,Winforms,带有 NuGet 包:Microsoft.ReportingServices.ReportViewerControl.Winforms 和 Microsoft.SqlServerTypes

If anyone can suggest how I can get back to a smaller deployment size, it would be very much appreciated. Thanks.

对于这个问题,我认为您可以在发布项目之前随意删除额外的包以减少部署大小。

让我们检查一下 Microsoft.ReportingServices.ReportViewerControl.Winforms 包的 lib 文件夹中的内容:

很明显,它有十个语言包,其中包含不同的程序集culture.All十个语言包有这四个程序集:

当您在项目中引用此 nuget 包并构建项目时,它将使用基本英文版本。(在我的机器上使用英文)

但是当我们使用ClickOnce发布的时候,它会在lib文件夹中获取所有个程序集,这也是导致your deployment size has ballooned to 80+mb的主要原因。因此,如果您使用的是英语环境或其他语言环境,则可以在 Project=>Properties=> Publish 中的 Application Files setting 中不使用的那些语言包中排除 不必要的 程序集。参见:

我排除了不需要的额外内容,它在我的机器中减少了将近 40mb 的大小。另外,类似的问题见 。希望对您有所帮助:)