.NET Winforms部署

时间:2020-03-06 14:54:11  来源:igfitidea点击:

无论如何,是否有将所有资源组合成单个exe文件(例如app.config和关联的DLL)的工具?

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

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

谢谢

解决方案

之前,我已经将Thinstall用作应用程序虚拟化包装程序:

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

这可以实现我们想要的功能,即将我们所有应用程序的依赖项捆绑到一个可执行文件中,包括.configs。

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

我们当然可以嵌入资源。转到应用程序属性,然后选择"资源"选项卡。它们中添加的所有资源都将位于主二进制文件中。

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

当然,在"解决方案资源管理器"(此处不带Visual Studio,因为我们没有提到)中,我们要包含的文件的"右键"和"属性"。

"构建操作"应该有一个选项,我们可以将其设置为"嵌入式资源"。

如果我们不希望更改设置,请将其移动到代码中,而不是配置中。

我同意某些用户的意见。实际上,它违反了" config"的目的。只需将所有信息硬编码在共享类调用"设置"中,然后像

_serverIP = settings.MailServerIP

唯一应考虑的项目是helperfile(与某些内容有关),图像,第三方dll(尽管我不确定),仅举几例。

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

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

杜德
这就是为什么它是一个配置文件!它应该允许我们更改应用程序实时运行的方式b!

如果我们担心自己的设置(不应更改),请尝试其他存储,类,数据库,注册表,平面文件等,或者只是将副本保存在某个地方,以用来替换那些麻烦的东西。

合并dlls ILMerge

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

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

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