无论如何将所有资源组合成一个 exe 文件,例如 app.config 和相关的 DLL 文件?
一些应用程序似乎可以做到这一点,例如 eMule。
我不希望我的 app.config 坐在那里等待编辑。
谢谢
无论如何将所有资源组合成一个 exe 文件,例如 app.config 和相关的 DLL 文件?
一些应用程序似乎可以做到这一点,例如 eMule。
我不希望我的 app.config 坐在那里等待编辑。
谢谢
当然,在Solution Explorer
(假设这里是 Visual Studio,因为你没有提到)Right-click
和Properties
你想要包含的文件中。
那里应该有一个选项Build Action
,您可以将其设置为Embedded Resource
.
您当然可以嵌入资源。转到应用程序属性并选择“资源”选项卡。添加的所有资源都将在主二进制文件中。
为什么不让 app.config 坐在那里等待编辑?许多专业软件包都有配置和ini文件可以自由编辑。
老兄,这就是为什么它是一个配置文件!它应该允许你改变应用程序的工作方式。
如果您担心不应该更改的设置,请尝试其他存储、类、数据库、注册表、平面文件等,或者只是在某个地方保留一个副本,可以用来替换搞砸的那个。
合并 dll - ILMerge
合并配置文件是不值得的,因为它应该是调整应用程序行为而不重新编译它的方式。如果您不需要,只需对所有内容进行硬编码(无论是代码还是作为 EmbeddedResources)。
如果您仍然需要可配置性,您可以将文件隐藏到用户配置文件中。
例如,参见http://www.codeproject.com/KB/cs/SystemConfiguration.aspx
我之前使用过 Thinstall 作为应用程序虚拟化收缩包装器:
https://thinstall.com/help/index.php?_netsupport.htm
这可以满足您的需求,即将应用程序的所有依赖项捆绑到一个可执行文件中,包括 .configs。
您还可以很好地研究其他软件收缩包装工具。
如果您不想更改设置,请将它们移动到代码中而不是配置中。
我同意一些用户的看法。它确实违背了“配置”的目的。只需对共享类调用“设置”中的所有信息进行硬编码,然后像这样引用
_serverIP = settings.MailServerIP
唯一应该考虑的项目是 helperfiles(它与某些东西有关,据说)、图像、第 3 方 dll(虽然我不确定)......仅举几例。
.net app.config 文件的问题在于修改它们会改变应用程序的工作方式。
嵌入资源不是问题,它是我担心的那个特定文件。