Развертывание .NET Winforms - PullRequest
       7

Развертывание .NET Winforms

2 голосов
/ 30 сентября 2008

Есть ли способ объединить все ресурсы в один exe-файл, такой как app.config и связанные библиотеки DLL?

Некоторые приложения, например, eMule, делают это.

Я не хочу, чтобы мой app.config сидел там в ожидании редактирования.

Спасибо

Ответы [ 8 ]

5 голосов
/ 30 сентября 2008

Конечно, в Solution Explorer (предполагается, что Visual Studio здесь, поскольку вы не упоминаете) Right-click и Properties файла (ов), которые вы хотите включить

Там должна быть опция для Build Action, которую вы можете установить на Embedded Resource.

2 голосов
/ 30 сентября 2008

Конечно, вы можете встраивать ресурсы. Перейдите в свойства приложения и выберите вкладку «Ресурсы». Все добавленные в них ресурсы будут в основном бинарном файле.

Почему бы не найти app.config в ожидании редактирования? Многие профессиональные пакеты программного обеспечения имеют конфигурацию и INI-файлы, которые можно свободно редактировать.

1 голос
/ 30 сентября 2008

Слияние DLL - ILMerge

Слияние конфигурационного файла не стоит, так как предполагается, что это способ изменить поведение приложения без его перекомпиляции. Если вам это не нужно - просто жестко закодируйте все (либо код, либо как EmbeddedResources).

Если вам все еще нужна конфигурируемость, вы можете скрыть файл в профиле пользователя.

См., Например, http://www.codeproject.com/KB/cs/SystemConfiguration.aspx

1 голос
/ 30 сентября 2008

Чувак, Вот почему это файл конфигурации! Это должно позволить вам изменить способ работы приложения на лету b!

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

0 голосов
/ 30 сентября 2008

Проблема с файлами .net app.config заключается в том, что их изменение может изменить способ работы приложения.

Встраивание ресурсов - не проблема, это именно тот файл, о котором я беспокоюсь.

0 голосов
/ 30 сентября 2008

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

_serverIP = settings.MailServerIP

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

0 голосов
/ 30 сентября 2008

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

0 голосов
/ 30 сентября 2008

Я использовал Thinstall в качестве средства сжатия приложений для виртуализации до:

https://thinstall.com/help/index.php?_netsupport.htm

Это делает то, что вы хотите, то есть объединяет все зависимости вашего приложения в одну возможную, включая .configs.

Вы также хорошо бы изучили другие программные инструменты для упаковки в термоусадочную пленку.

...