辅助dll被标记为“先决条件(自动)”

时间:2015-07-09 04:44:33

标签: .net dll visual-studio-2013 clickonce

我有三个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项目的“属性” - > '发布' - > 'Application Files ...',它显示DocumentFormat已设置为'Prerequisite(Auto)',其中ClosedXML和MyHelper设置为'Include(Auto)'。我想配置MyHelper / DocumentFormat,以便DocumentFormat也设置为'Include(Auto)'。

1 个答案:

答案 0 :(得分:1)

Based off this answer,我猜测并从我的本地C:\Windows\Microsoft.NET\assembly\GAC_MSIL\文件夹中删除了DocumentFormat文件夹。显然,这是" Framework SDK文件夹"因为MSDN article没有给你它。我实际上搜索了我的整个驱动器的DocumentFormat dll,这是它出现的唯一非项目子文件夹。

在我这样做之后,我重新打开了项目,然后复制了本地'设置已设为' True'对于MyHelper中的DocumentFormat引用。它还更新了ClickOnce'应用程序文件...'设置为'包含(自动)'来自'先决条件(自动)'。

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

我不确定它是否是一个错误或是否是设计错误,但似乎ClickOnce应用程序忽略了MyHelper的复制本地设置覆盖并使用所有的默认设置的DLL。