Развертывание приложения .Net: работает только на моей машине - PullRequest
0 голосов
/ 20 января 2012

У меня есть еще одна проблема с развертыванием.

Что у меня есть: небольшое приложение Windows Forms, которое просматривает кэш браузера и копирует оттуда файлы изображений.

Проблема: приложение отлично работает на моем компьютере, но всякий раз, когда я пытаюсь запустить его на чужом компьютере, я получаю сообщение об ошибке (что-то вроде «ошибка произошла. Выход») и список из 3 файлов в папке Temp. Не много информации о проблеме в этих файлах.

Я пробовал использовать разные целевые платформы .Net 4.0, .Net 4.0 Client Profile, 3.5, 3.5 Client profile - та же проблема. Я попробовал проект развертывания и установки OneClick, и просто скопировал файл * .exe. Все в конечном итоге с той же проблемой.

На целевой машине установлен полный .Net 4.0 framework, но это не имеет значения.

Приложение читает из реестра, но я не думаю, что чтение из HKLM требует прав администратора, но я все равно пытался работать от имени администратора.

Я пробовал Windows 7, XP SP3 - аналогичные выходы.

Нет никаких зависимостей для проекта, кроме .Net framework.

Любые предложения, где я могу проверить, что именно происходит с приложением на чужой машине ??

p.s. исходный код доступен здесь, если вы хотите посмотреть: http://cachecopy.codeplex.com/SourceControl/list/changesets

UPD: Спасибо за предложение, ребята, я установил Visual Studio на другом компьютере и через несколько секунд обнаружил проблему. Я пытался открыть каталог с String.Empty в качестве адреса. Глупый я!

Ответы [ 3 ]

2 голосов
/ 20 января 2012

Может быть, в какой-то момент вы ссылаетесь на файл, который не существует на других машинах? Например 'C: \ MyFile'?

2 голосов
/ 20 января 2012

Звучит как работа для ... ProcMon . Запустите это на компьютере, пока вы запускаете приложение, и отфильтруйте все, кроме вашего exe. Это покажет вам всю файловую систему и активность реестра. Если есть проблемы с разрешениями, вы увидите, что доступ запрещен в столбце результатов, или если что-то отсутствует, вы увидите путь не найденные записи.

1 голос
/ 20 января 2012

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

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

Try / Catch с пользовательскими ошибкамичтобы помочь вам точно определить области, было бы неплохо по всем кодам доступа к файловой системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...