Значения конфигурации развертывания VSTO ClickOnce - PullRequest
0 голосов
/ 07 мая 2018

Я создал надстройку VSTO в слове, которая будет читать поля формы и сохранять их в документе в локальной папке.

Во время разработки я добавил app.config, чтобы мы могли настроить выходную папку.

Теперь, когда мы хотим продвинуть его в QA и другие среды. У меня вопрос, как мы можем сделать это настраиваемым?

Clickonce создает файл манифеста и файлы приложения, но, в отличие от других приложений .net, в папке публикации нет файла app.config.

Я думаю, что единственный способ - это сделать проект установки установщика Windows и, возможно, добавить эту Выходную папку в качестве записи реестра и сослаться на эту запись реестра в коде?

Когда мы устанавливаем надстройку VSTO, куда она устанавливает файлы?

Любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 10 мая 2018

ClickOnce устанавливает надстройки VSTO в запутанную папку в папке% localappdata% \ Apps \ 2.0. Таким образом, у вас нет возможности изменить вещи в app.config таким образом.

Один вариант, и я подозреваю, что это возможно, но не знаю наверняка, - это поместить ваш app.config в сетевую папку и вставить его во время выполнения.

Другой способ - создать совершенно отдельную конфигурацию вне app.config. Один из довольно простых способов сделать это - создать классы для полей, которые вы хотите сохранить, избежать необнуляемых типов (например, использовать bool? Вместо bool) и добавить [Serializable] к каждому классу. Затем используйте XmlSerializer.Serialize для записи в файл и XmlSerializer.Deserialize для чтения. Вы также можете использовать сериализацию JSON.

...