2

无论如何将所有资源组合成一个 exe 文件,例如 app.config 和相关的 DLL 文件?

一些应用程序似乎可以做到这一点,例如 eMule。

我不希望我的 app.config 坐在那里等待编辑。

谢谢

4

8 回答 8

5

当然,在Solution Explorer(假设这里是 Visual Studio,因为你没有提到)Right-clickProperties你想要包含的文件中。

那里应该有一个选项Build Action,您可以将其设置为Embedded Resource.

于 2008-09-30T00:50:33.100 回答
2

您当然可以嵌入资源。转到应用程序属性并选择“资源”选项卡。添加的所有资源都将在主二进制文件中。

为什么不让 app.config 坐在那里等待编辑?许多专业软件包都有配置和ini文件可以自由编辑。

于 2008-09-30T00:50:21.043 回答
1

老兄,这就是为什么它是一个配置文件!它应该允许你改变应用程序的工作方式。

如果您担心不应该更改的设置,请尝试其他存储、类、数据库、注册表、平面文件等,或者只是在某个地方保留一个副本,可以用来替换搞砸的那个。

于 2008-09-30T04:08:21.707 回答
1

合并 dll - ILMerge

合并配置文件是不值得的,因为它应该是调整应用程序行为而不重新编译它的方式。如果您不需要,只需对所有内容进行硬编码(无论是代码还是作为 EmbeddedResources)。

如果您仍然需要可配置性,您可以将文件隐藏到用户配置文件中。

例如,参见http://www.codeproject.com/KB/cs/SystemConfiguration.aspx

于 2008-09-30T05:08:39.580 回答
0

我之前使用过 Thinstall 作为应用程序虚拟化收缩包装器:

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

这可以满足您的需求,即将应用程序的所有依赖项捆绑到一个可执行文件中,包括 .configs。

您还可以很好地研究其他软件收缩包装工具。

于 2008-09-30T00:48:31.703 回答
0

如果您不想更改设置,请将它们移动到代码中而不是配置中。

于 2008-09-30T02:12:58.347 回答
0

我同意一些用户的看法。它确实违背了“配置”的目的。只需对共享类调用“设置”中的所有信息进行硬编码,然后像这样引用

_serverIP = settings.MailServerIP

唯一应该考虑的项目是 helperfiles(它与某些东西有关,据说)、图像、第 3 方 dll(虽然我不确定)......仅举几例。

于 2008-09-30T03:58:53.693 回答
0

.net app.config 文件的问题在于修改它们会改变应用程序的工作方式。

嵌入资源不是问题,它是我担心的那个特定文件。

于 2008-09-30T04:03:19.270 回答