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