Развертывание приложения Windows в Visual Studio 2010 Express

Я разработал приложение Windows на С# в Visual Studio Express 2010. Теперь я хочу его развернуть.

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

Как устранить эту ошибку? Я также использую одну папку для файлов.


person misha    schedule 18.04.2011    source источник
comment
в чем ошибка.. связана ли она с вводом-выводом.. может быть, вы не проверяете файлы на существование.   -  person Shekhar_Pro    schedule 18.04.2011
comment
ошибки в том, что он не может найти путь к этим файлам...   -  person misha    schedule 18.04.2011
comment
файлы даже доступны.. вы используете относительный путь или абсолютный путь   -  person Shekhar_Pro    schedule 18.04.2011
comment
Можете ли вы опубликовать код? Может быть, это только та часть, к которой вы обращаетесь к файлу?   -  person abhilash    schedule 18.04.2011
comment
покажите нам свой код (может быть и структура каталогов).. тогда посмотрим   -  person Shekhar_Pro    schedule 18.04.2011
comment
хорошо .... он показывает ошибку следующим образом:::   -  person misha    schedule 18.04.2011
comment
System.IO.DirectoryNotFoundException: не удалось найти часть пути «C:\Documents and Settings\develop2\Local Settings\Apps\2.0\VCOA5O2Q.1VT\9NQMV5O4.6BM\PckSlp\». в System.IO.__Error.WinIOError(Int32 errorCode, String mayFullPath) в System.IO.FileSystemEnumerableIterator`1.CommonInit()   -  person misha    schedule 18.04.2011
comment
я помещаю свои файлы в папку bin... и в своем коде я использую как-››..//PckSlp//имя файла   -  person misha    schedule 18.04.2011


Ответы (3)


Я большой поклонник использования WiX для установщиков, даже если у вас есть Visual Studio Pro со встроенными инструментами создания MSI.

http://wix.sourceforge.net/

Преимущество WiX в том, что вы можете делать практически все, от очень простых до очень сложных. Инструмент отличный, потому что вы можете быстро начать работу, а затем продвигаться вверх (добавляя диалоги и т. д.) по мере того, как ваше приложение становится более популярным.

Один трюк для установщиков: рассмотрите возможность использования VMWare/HyperV, установите тестовую ОС, а затем сделайте снимок ОС перед установкой приложения. ЕСЛИ все работает, отлично - все готово. Однако, если что-то не так, откатите ОС до предустановленного снимка, исправьте ошибку и повторите попытку.

person stuck    schedule 18.04.2011

  1. Добавьте эти внешние файлы в проект
  2. Щелкните правой кнопкой мыши внешние файлы в вашем VS. Установите действие сборки как содержимое.
  3. Копировать в выходной каталог в CopyAlways

Затем попробуйте развернуть

person abhilash    schedule 18.04.2011
comment
я сделал эту опцию copyAlways ... я также пытался сохранить в папке bin ... но все равно показывает ошибку ...... - person misha; 18.04.2011

Это может быть связано с разрешениями UAC Windows 7. Несмотря на то, что текущие книги, msdn и даже фрагменты в Visual Studio обучают методам файлового ввода-вывода, большинство из них неверны при учете UAC.

Все ваши файловые операции должны выполняться в безопасных зонах UAC, таких как Environment .GetFolderPath(Environment.SpecialFolder.ApplicationData)

Вы не можете читать или записывать файлы в каталогах C:\Program Files (x86), если вы не повысили уровень своего приложения для запуска с более высокими привилегиями.

Если вы устанавливаете приложение, щелкаете правой кнопкой мыши исполняемый файл и выбираете «Запуск от имени администратора», и все работает, проблема заключается в UAC.

Если вы не запрограммировали ограничения UAC, я настоятельно рекомендую прочитать об этом. Это избавит от многих головных болей в будущем.

http://www.codeproject.com/Articles/17968/Making-Your-Application-UAC-Aware

person DaveCS    schedule 24.04.2012