我可以使用 ClickOnce 安装程序删除 ReportViewer 语言包吗

Can I remove the ReportViewer language packs with ClickOnce installer

我有一个通过 ClickOnce 部署的 .Net 4 WPF 应用程序。
该应用程序在本地生成一些报告并将它们显示给用户,因此它具有对 Microsoft.ReportViewer.WinForms 的引用。这些报告是 .rdlc 并作为资源嵌入到应用程序中。

最近,我们将 .dll 从版本 10 升级到最新版本 14,以便查看更新的模式定义。问题是旧版本没有显示其他语言报告的选项,但现在,因为它有,它在部署中为每种语言(de、es、fr 等)包含额外的文件夹。
这些文件夹为 ClickOnce 安装增加了另外 28.6 MB(这实际上使我们的应用程序安装程序大小加倍)。

由于我们不需要任何这些语言包,有没有办法在发布 ClickOnce 安装程序时包含它们?

如果不包含这些语言版本的 .dll,是否有任何已知的副作用?

更新: 我正在使用 post 构建事件来删除文件夹,这些在单击一次发布之前删除了文件夹,但我假设仍然存在一些配置,因此不包括在内。

您可以在 ClickOnce 发布期间从发布中删除其他语言包。

  1. 打开您从
  2. 发布的项目的项目属性
  3. 导航到“发布”选项卡
  4. 单击 "Application Files..." 按钮
  5. 在“应用程序文件”弹出窗口中 select 底部的 "Show all files" 复选框
  6. 每种语言都有 3 个 dll,如果您将发布状态设置为 "Exclude",它们将不会与 ClickOnce 应用程序一起发布

我遇到的问题是没有单击 "Show all files" 复选框,看起来语言 dll 都包含在基本 dll 中。如果您这样做,那么 ReportViewer 将只会以您包含其 dll 的语言显示。

如果不包含语言 dll,ReportViewer 将使用基本英文版本。这与系统语言没有一组特定的 dll 时的行为相同。