Vs 2010 Click Once приложение, написанное на c #, копирует XML-файлы в другой каталог - PullRequest
1 голос
/ 15 июня 2011
  1. У меня есть приложение для надстройки Excel, которое я разработал на C # и опубликовал в сетевом расположении с помощью ClickOnce из VS2010.

  2. Приложение предполагает, что всеXML-файлы, которые я использую в нем, находятся в той же папке, что и само приложение.

  3. Но когда пользователь устанавливает мое приложение, используя ClickOnce

, файлы приложения копируются в одну папку ( C:\ Users \ myUser \ AppData \ Local \ Apps \ 2.0 \ 4THJAWJK.HYG \ 5N2YL58D.X55 \ ical..vsto_d6a691f9c1918311_0006.0000_ac7a074687bf4c5e )

копируются в другие файлы данных в виде файлов x x, x 1020 * и копируются в другие файлы данных в виде файлов x x.( C: \ Users \ myUser \ AppData \ Local \ Apps \ 2.0 \ 4THJAWJK.HYG \ 5N2YL58D.X55 \ ical ... dll_d6a691f9c1918311_0006.0000_none_a70d8116aa98d903 10 * * 10 10 )Вопрос в том, есть ли у меня какая-либо конфигурация в Visual Studio, которая заставит все файлы копироваться в одну папку после установки, или есть ли другой способ сделать это?

Спасибо.

1 Ответ

1 голос
/ 16 июня 2011

Я думаю, что есть несколько вариантов решения вашей проблемы в зависимости от цели вашего XML-файла.

Опция # 1 Если вы хотите скопировать и XML-файл в корневую установкукаталог вашего приложения каждый раз, когда вы публикуете приложение, все, что вам нужно сделать, это открыть диалоговое окно свойств вашего проекта, перейти на вкладку «Опубликовать» и открыть диалоговое окно «Файлы приложения ...».

По умолчаниюесли файл XML включен в проект, ClickOnce указывает, что эти файлы должны быть опубликованы как «Файл данных» (в разделе «Состояние публикации»).

Измените состояние публикации на «Включить», и файл XML будетбыть скопирован в папку установки вместо папки данных.

Option # 2 Если вы хотите создать файл XML, который будет использоваться для кэширования пользовательских настроек, которые должны сохранятьсячерез обновления приложения я рекомендую выводить файл XML по умолчанию, как упомянуто в шаге # 1, однако, когда приложение запускается, проверьте to посмотреть, находится ли файл XML в папке настроек, которую вы создали в папке профиля пользователя.При первом запуске приложения вам также необходимо проверить, существует ли ваша папка в профиле пользователя.Если нет, создайте его и скопируйте файл XML по умолчанию.

Внутри приложения вы можете получить папку данных пользователя со следующей строкой кода:

string folder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.UserProfile);

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

...