Проблема развертывания Windows Forms C # .net - PullRequest
0 голосов
/ 09 мая 2009

Я только что закончил приложение WinForms, и оно отлично работает! Теперь время развернуть. Проблема в том, что я не хочу создавать установочный файл, а скорее один исполняемый файл, например «myApp.exe». Причина этого заключается в том, что он будет перераспределен на компакт-диске и предполагается, что он будет автоматически запускаться как отдельное приложение, когда компакт-диск вставлен в ПК пользователя.

Есть мысли здесь?

Во-вторых, как я могу создать ссылку на файлы .txt, содержащиеся на компакт-диске, из приложения? Я хочу предоставить ссылки на файлы, но я не уверен, как сделать ссылку на путь.

TIA ... Я действительно озадачен здесь!

Ответы [ 4 ]

2 голосов
/ 09 мая 2009

Когда вы ссылаетесь на файлы .txt в своем коде, просто используйте относительный путь, из которого выполняется приложение. Например, если ваши файлы .txt находятся в том же каталоге, что и исполняемый файл, обращайтесь к ним без указания пути («filename.txt») или вы можете использовать («. \ Filename.txt»).

Если вы не устанавливаете ваше приложение, просто убедитесь, что вы не используете сторонние библиотеки, которые необходимо установить на клиентах, и просто запишите содержимое вашего каталога apps / bin / и используйте файл autorun.ini. чтобы запустить свой exe.

1 голос
/ 19 мая 2009

@ Шалан, re: твой ответ:

Будь осторожен! Вы расстроите своих пользователей и программистов!

Я видел и исправлял эту ошибку как минимум пару десятков раз.

Вы уверены, что знаете текущий каталог? Например, OpenFileDialog и SaveFileDialog могут изменить его, и тогда вы не сможете найти свой файл .dot.

Что если пользователь запустит приложение с другим рабочим каталогом? Тогда вы тоже потерпите неудачу. Помните, что вы не можете контролировать свой рабочий каталог - ваше приложение не сможет работать, если пользователь изменит его со значения по умолчанию.

Если вам необходимо найти путь к исполняемому файлу приложения, попробуйте использовать Application.StartupPath вместе с System.IO.Path . Например:

string dotSubPath = System.IO.Path.Combine("Assets", "MyDocument.dot");
string templatePath = System.IO.Path.Combine(Application.StartupPath, dotSubPath);

Путь всегда будет получен на основе каталога запуска приложения, а не только рабочего каталога.

1 голос
/ 09 мая 2009

Вы можете использовать встроенные ресурсы в exe вместо отдельных файлов: http://jopinblog.wordpress.com/2007/11/12/embedded-resource-queries-or-how-to-manage-sql-code-in-your-net-projects/

0 голосов
/ 19 мая 2009

Для тех, кто заинтересовался, для меня также было полезно использовать путь ссылки из исполняемого файла приложения - использовать «Environment.GetCurrentDirectory»

Так, например, я указал путь к шаблону MS Word .dot как:

Object templatePath = Environment.GetCurrentDirectory + "\\Assets\\MyDocument.dot";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...