辅助 dll 被标记为 'Prerequisite (Auto)'

Secondary dll gets marked as 'Prerequisite (Auto)'

我有三个 dll:

我在使用 ClickOnce 发布的多个应用程序中使用 MyHelper。默认情况下,ClickOnce 应用程序会复制 MyHelper 和 ClosedXML 到 ClickOnce 部署文件夹,但不会复制 DocumentFormat。查看 ClickOnce 项目的 'Properties' -> 'Publish' -> 'Application Files...',它显示 DocumentFormat 已设置为 'Prerequisite (Auto)',其中设置了 ClosedXML 和 MyHelper至 'Include (Auto)'。我想配置 MyHelper/DocumentFormat 以便 DocumentFormat 也设置为 'Include (Auto)'。

Based off this answer, I took a guess and deleted the DocumentFormat folder from my local C:\Windows\Microsoft.NET\assembly\GAC_MSIL\ folder. Apparently that is "the Framework SDK folder" because the MSDN article 不给你。实际上,我在整个驱动器中搜索了 DocumentFormat dll,这是它出现在的唯一一个非项目子文件夹。

在我这样做之后,我打开了备份项目,MyHelper 中的 DocumentFormat 引用的 'Copy Local' 设置被设置为 'True'。它还将 ClickOnce 'Application Files...' 设置从 'Prerequisite (Auto)'.

更新为 'Include (Auto)'

如果其他人尝试此操作但设置没有更新,我会尝试删除并重新添加引用以清除任何现有设置覆盖。

我不确定这是错误还是设计使然,但 ClickOnce 应用程序似乎忽略了 MyHelper 的复制本地设置覆盖并使用所有 dll 的默认设置。