Файлы данных, не развернутые с приложением ClickOnce - PullRequest
2 голосов
/ 25 февраля 2009

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

Когда я публикуюсь, установите приложение, а затем выполните его сразу же при запуске с исключением DirectoryNotFoundException (полная трассировка стека ниже).

Просматривая папку приложения, я могу найти все файлы, помеченные как «Включить авто», аккуратно размещенные вместе с исполняемыми файлами. Файлы, помеченные как «Файл данных», хотя и не установлены (я проверил как исполняемые папки, так и папку «Данные»).

Обратите внимание, что публикация и установка выполняются из папки на моем локальном компьютере, а не через веб-сайт.

Если я изменю «Файл данных» на стандартное включение для всех файлов содержимого, все работает как чудо.

Я использую (задыхаясь) Windows XP SP3 и .Net 3.5 SP1.

System.IO.DirectoryNotFoundException не обработан Сообщение = "Система не может найти указанный путь. (Исключение из HRESULT: 0x80070003)" Источник = "mscorlib" Трассировки стека: в System.Deployment.Internal.Isolation.IActContext.SetApplicationRunningState (UInt32 dwFlags, UInt32 ulState, UInt32 & ulDisposition) в System.ActivationContext.SetApplicationState (ApplicationState s) в System.AppDomain.SetupDomainForApplication (ActivationContext активацииContext, String [] активацииData) в System.AppDomain.SetupApplicationHelper (Свидетельство предоставлено SecurityInfo, Доказательство в System.AppDomain.SetDomainManager (Предоставлено доказательствоSecurityInfo, Создатели доказательстваSecurityInfo, IntPtr parentSecurityDescriptor, Логический publishAppDomain) в System.AppDomain.SetDefaultDomainManager (String fullName, String [] manifestPaths, String [] активацииData) InnerException:

1 Ответ

3 голосов
/ 26 февраля 2009

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

Проблема также связана с тем, что в некоторых из этих подпапок у меня были файлы, помеченные как «Включить», а некоторые как «Данные». Это, вероятно, вызывает некоторую путаницу во время развертывания, когда файлы данных не развертываются.

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

\Testfiles\Filegroup1\data1.txt
\Testfiles\Filegroup1\data2.txt
\Testfiles\Filegroup2\moredata1.txt
\Testfiles\Filegroup2\moredata2.txt

Затем я отмечаю все файлы в каждой папке как Данные. Теперь все разворачивается красиво и модно, и загрузчик не падает при запуске.

...