辅助 dll 被标记为 'Prerequisite (Auto)'
Secondary dll gets marked as 'Prerequisite (Auto)'
我有三个 dll:
DocumentFormat.OpenXml.dll
- 这是一个 Microsoft dll,用于与他们的 XML Office 文档(即 .xlsx
、.docx
等)进行交互。它不是很容易使用,这就是为什么我使用...
ClosedXML.dll
- 这是 DocumentFormat 的包装器。
MyHelper.dll
- 这是我创建的程序集,它直接引用 ClosedXML,但不引用 DocumentFormat。
我在使用 ClickOnce 发布的多个应用程序中使用 MyHelper。默认情况下,ClickOnce 应用程序会复制 MyHelper 和 ClosedXML 到 ClickOnce 部署文件夹,但不会复制 DocumentFormat。查看 ClickOnce 项目的 'Properties' -> 'Publish' -> 'Application Files...',它显示 DocumentFormat 已设置为 'Prerequisite (Auto)',其中设置了 ClosedXML 和 MyHelper至 'Include (Auto)'。我想配置 MyHelper/DocumentFormat 以便 DocumentFormat 也设置为 'Include (Auto)'。
- I've tried setting "Copy Local" to True in MyHelper (including toggling it)
- I've tried referencing DocumentFormat from MyHelper.
- 我尝试将它添加为 MyHelper 中的资源,但那很乱(而且我认为它不起作用)
- 我尝试将网络文件夹路径添加到 MyHelper 的
Reference Paths
,其中包含 DocumentFormat dll 的副本
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 的默认设置。
我有三个 dll:
DocumentFormat.OpenXml.dll
- 这是一个 Microsoft dll,用于与他们的 XML Office 文档(即.xlsx
、.docx
等)进行交互。它不是很容易使用,这就是为什么我使用...ClosedXML.dll
- 这是 DocumentFormat 的包装器。MyHelper.dll
- 这是我创建的程序集,它直接引用 ClosedXML,但不引用 DocumentFormat。
我在使用 ClickOnce 发布的多个应用程序中使用 MyHelper。默认情况下,ClickOnce 应用程序会复制 MyHelper 和 ClosedXML 到 ClickOnce 部署文件夹,但不会复制 DocumentFormat。查看 ClickOnce 项目的 'Properties' -> 'Publish' -> 'Application Files...',它显示 DocumentFormat 已设置为 'Prerequisite (Auto)',其中设置了 ClosedXML 和 MyHelper至 'Include (Auto)'。我想配置 MyHelper/DocumentFormat 以便 DocumentFormat 也设置为 'Include (Auto)'。
- I've tried setting "Copy Local" to True in MyHelper (including toggling it)
- I've tried referencing DocumentFormat from MyHelper.
- 我尝试将它添加为 MyHelper 中的资源,但那很乱(而且我认为它不起作用)
- 我尝试将网络文件夹路径添加到 MyHelper 的
Reference Paths
,其中包含 DocumentFormat dll 的副本
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 的默认设置。