c# - 制作灵活的exe文件
问题描述
我已经在 Visual Studio 2017 中完成了我的应用程序。一切都很棒,工作完美,但现在我想让它灵活地在其他环境中使用。
我有 3 或 4 个不同的环境,它们都有自己的本地网络和服务器。
我需要让我的应用程序在该网络中的计算机上首次要求设置(输入连接字符串)。
在该计算机上安装后,这些设置应存储在某处,但可供该网络中的其他用户使用(下一次安装不需要在计算机上进行设置,而是将数据用于线程。
我不知道该怎么做,我阅读了 App.config 但在那里没有看到任何有用的东西。
任何想法?
解决方案
您正在寻找的是App.config
文件。这是您可以存储可以为每个环境更改的连接字符串的地方:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Connection" value="127.0.0.1"/>
<add key="altConnection" value="L:\Path\To\Thing"/>
</appSettings>
</configuration>
您显然会更改XML/App.config 文件value=
的部分内的内容。<add key>
这个 App.config 可以存储在程序的某个地方,每个人都可以访问(如果其他人对配置文件的部署有更好的答案,请随时编辑或在下面评论)。
127.0.0.1 只是我用作示例的默认 IP
这可以在代码中使用,添加using System.Configuration
并确保您已将正确的引用添加到项目中。App.config 可以通过以下方式内联访问:
string conStr = ConfigurationManager.AppSettings["Connection"];
或类似的东西。@Serge 的评论是开始使用 App.config 文件的绝佳参考!
对于部署:
如果您正在为整个网络部署程序,那么我想文件共享应该可以正常工作(根据@Elgonzo 的评论)。有了这个,您应该能够部署到文件共享,配置文件也位于那里。不要给您的用户.exe 文件的副本,而是给他们.exe 文件的快捷方式。这将允许您只需要更新一个位置而不是多个位置。如果需要,仍然可以访问 App.config,并且每个用户都应该能够正常使用该程序。(这就是我在网络中部署应用程序的方式。)
另一种选择Global Variable
是在每次启动应用程序时都要求输入 IP 地址(或文件路径),具体取决于您计划如何进行部署或环境如何使用该程序以及什么。
推荐阅读
- css - 我如何在 reactjs 上重新排序 div
- entity-framework - 实体框架 6 与 system.componentmodel.annotations(网络标准兼容)程序集中的数据注释不兼容?
- angular - 开发极端过滤 API 角度
- php - wc_add_notice 在生产服务器中不起作用
- html - 上下文数据未将变量呈现为 HTML
- r - 从澳大利亚公开赛统计数据中提取数据
- kubernetes - 当存在两个仅名称不同的 Istio VirtualService 时,如何选择应该使用哪个 VirtualService?
- c - MakeFile:C 中的隐式文件声明警告
- javascript - 无一例外地中断 if/else 块 Cypress
- python - 如何在python的csv输出中的每个表之前包含1个行空间并标记页码