2015-07-09 1 views
1

У меня есть три:Secondary длл будет помечен как 'Предпосылка (Auto)'

DLLs
  • DocumentFormat.OpenXml.dll - Это длл Microsoft для взаимодействия с их XML офисных документов (т.е. .xlsx, .docx и т.д.). Это не очень легко использовать, поэтому я использую ...
  • ClosedXML.dll - Это обертка вокруг DocumentFormat.
  • MyHelper.dll - Это моя сборка, которую я создал, которая напрямую ссылается на ClosedXML, но не на DocumentFormat.

Я использую MyHelper в нескольких приложениях, которые я публикую с помощью ClickOnce. По умолчанию приложение ClickOnce копирует MyHelper и ClosedXML в папку развертывания ClickOnce, но не копирует DocumentFormat. Глядя на «Свойства» ClickOnce Project -> «Публиковать» -> «Файлы приложений ...», он показывает, что для параметра «DocumentFormat» установлено значение «Предварительное условие (Авто)», где для ClosedXML и MyHelper установлено значение «Включить (Авто) ». Я хотел бы настроить MyHelper/DocumentFormat так, чтобы DocumentFormat был установлен в 'Include (Auto)'.

ответ

1

Based off this answer, я принял догадку и удалил папку DocumentFormat из моих локальных C:\Windows\Microsoft.NET\assembly\GAC_MSIL\ папка. По-видимому, это «папка SDK Framework», потому что MSDN article не дает вам это. Я действительно выполнил поиск всего моего диска для dll DocumentFormat, и это была единственная не-проектная подпапка, в которую он появился.

После этого я открыл резервную копию проекта и настройку «Копировать локальную» было установлено значение «True» для ссылки DocumentFormat в MyHelper. Он также обновил параметр «Прикладные файлы ClickOnce» ... для параметра «Включить (Авто)» из «Предпосылки (Авто)».

Если кто-то еще это попробовал, а параметр не обновлялся, я попытался бы удалить и повторно добавить ссылку, чтобы удалить все существующие переопределения параметров для нее.

Я не уверен, что это ошибка, или если она по дизайну, но похоже, что приложения ClickOnce игнорируют переопределение параметра «Копирование локальных файлов MyHelper» и используют настройки по умолчанию для всех DLL.

+0

Кажется, что нужно работать, но мне ничего не нужно было удалять из папки GAC. Эти шаги были достаточными: 1). Убедитесь, что 'Copy Local' был' True' для 'DocumentFormat.OpenXML' в рамках ссылок на проект (также убедитесь, что для параметра« Копировать локальное »WindowsBase установлено значение« True ») 2). Перешел в диалоговое окно настроек ClickOnce «Файлы приложений ...» и изменил строку «DocumentFormat.OpenXML», чтобы сказать «Include» (ранее он читал «Предварительное условие (Авто)», например, @tehDorf). – ErrCode