创建C# Winform开发生产环境

2024-03-31

我想知道为我的 C# winforms 项目正确创建开发和生产环境的最佳方法是什么。不幸的是没有开发环境。相反,每次我希望创建生产或开发版本时,我都必须指定发布路径。此外,由于每个产品或开发版本都使用不同的连接字符串,因此我也必须进入代码并更改它。

EDIT我想补充的另一件事是,可以说“测试人员”将从本地 .exe 运行程序,该程序将查看源文件并检测是否需要进行更新。我提到这一点的唯一原因是测试人员不会在“调试”模式下运行代码。

有任何想法吗?

提前致谢!


UPDATE

唷,2009 年确实是很久以前的事了;)我将把最初的答案留给后人,但是,正如Eric J. 已在 2012 年帖子的更新版本中指出 https://stackoverflow.com/a/1343397/130480, 慢猎豹 https://www.nuget.org/packages/SlowCheetah/是解决此问题的更灵活的方法,因为它允许您为每个配置创建多个配置文件。

原答案

我无法回答发布部分,因为我不确定是否可以完成。但是,对于连接字符串部分,您可以创建一个“连接字符串提供程序类”,如果您处于开发阶段,它将返回开发连接字符串;如果您处于生产阶段,它将返回生产连接字符串。

我不知道您是否在配置管理器中使用“调试”和“发布”编译模式,但可以将其与预编译器指令一起使用:

public class ConnectionStringProvider
{
  public static string GetConnectionString()
  {
    #if (DEBUG)
      return DevConnectionString;
    #else
      return ProdConnectionString;
    #endif
  }
}

如果您使用 VS2005 设置窗格(在项目设置中),您可以在其中设置 2 个连接字符串并使用它来代替常量值。如果您使用任何 .Net 数据源,则可以始终使用 DEV 连接字符串来创建对象。

另外,连接字符串提供程序可以使用单例模式,但我不确定是否会有真正的好处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建C# Winform开发生产环境 的相关文章

随机推荐

  • 在第一个表单的位置精确显示第二个表单

    从主表单 Form1 我调用显示另一个表单 Form2 但我希望它显示与 form1 完全相同的位置和大小 这样我们就无法再看到 form1 了 直到我们关闭 form2 或将其移到其他地方 所以我写了这些行 Form2 f2 new Fo
  • Mac:执行 Vagrant 使用的 CLI“VBoxManage”时出现错误

    我正在使用 aerospike 并使用 vagrant virtual box 安装它 安装后 当我尝试启动虚拟机时 出现以下错误 执行时出现错误VBoxManage Vagrant 使用的 CLI 用于控制 VirtualBox 命令和
  • Swing JForm 冻结直到操作完成[重复]

    这个问题在这里已经有答案了 我想创建一个使用 swing 组件可视化合并排序的 Java 应用程序 到目前为止我已经写了这个 import java awt event ActionEvent import java awt event A
  • 打破Java中的for循环[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在我的代码中 我有一个 for 循环
  • 如何将字符串拆分为新行,同时维护 R 中的其他列[重复]

    这个问题在这里已经有答案了 我想将字符向量列拆分为多行 同一数据帧 同时维护其他列 keep 在这个可重现的例子中 dat lt structure list ID c E87 E42 E39 E16 E17 E18 E760 E761 E
  • 如何从 Mac OS X 交叉编译到 Linux x86?

    我正在运行 Mac OS X 10 5 8 并希望使用 GCC 4 1 2 为目标 CentOS 5 3 进行编译 我怎么能 编译GCC 4 1 2工具链及相关工具 使用该工具交叉编译目标 CentOS 5 3 任何帮助是极大的赞赏 最简单
  • Django 项目的 Pyinstaller 错误“ImportError:没有名为 'django.contrib.admin.apps' 的模块”

    我在 django 中创建了一个项目 我已经使用 pyinstaller 为其创建了安装程序 如果我使用运行项目python 管理 py runserver然后项目运行良好 没有任何错误 但我无法通过安装程序运行它 我在运行安装程序时遇到错
  • 在 R 中循环有序集的函数式方法

    我正在尝试优化 R 中的算法 该算法在一组有序值上运行 并确定 未来 在该组的更下方 是否存在比给定值更低的值 例如 Value RestOfSeriesContainsLowerValue 5 true 4 true 2 true 1 f
  • 尝试在 FabricJS 中使用句柄创建对话气泡

    我正在尝试使用 FabricJS 创建一个语音气泡 以集成到 WordPress 插件中 希望 免费发布 以帮助人们注释图像 我在这里找到了原始的气泡 语音气泡 html5 canvas js https stackoverflow com
  • Jetty 和其他容器如何在遵守 Servlet 规范的同时利用 NIO?

    我是 NIO 的新手 我正在尝试弄清楚 Jetty 如何利用 NIO 我对使用 Blocking IO 的传统 servlet 容器如何服务请求的理解如下 请求到达 分配一个线程来处理请求和 servlet 方法 doGet等 被调用 Se
  • ServiceStack:手动调用服务时恢复管道?

    作为后续这个问题 https stackoverflow com questions 64560997 servicestack messaging api can it make a broadcast 我想了解如何改进我对服务的手动调用
  • Wildfly 8.0.0.Final JTA 事务问题

    由于我们在事务中使用了大量 ApplicationScoped bean 但我们不想使用 EJB ApplicationScoped bean 不适用于无状态 bean 因此我们创建自己的事务拦截器 例如 Resource UserTran
  • 使用 C# 重新启动应用程序

    如何使用 C 重新启动我的 WPF 应用程序 我认为 WPF 中没有像 WinForms 中那样的直接方法 但是 您可以使用以下方法Windowns Form像这样的命名空间 您可能需要添加对System Windows Form集会 Sy
  • 在 Mathematica 中查找先前定义的消息

    Mathematica 默认定义了许多有用的消息来表示常见错误 例如使用错误数量的参数调用函数或未找到文件 一般来说 我更喜欢尽可能使用现有的 已定义的消息 因为这样可以更轻松地通过诸如Check Quiet and On Off 然而 我
  • 将应用程序更新到新代码库后,AsyncStorage 是否仍然保留?

    我有一个react native项目中我计划重新编写所有的代码库 新的源代码 我打算使用相同的包 ID 所以我的客户 他们希望用户能够收到有关新应用程序版本的通知 而他们更新后 登录状态将保持 这样用户就不必再次登录 所以我想知道在这种情况
  • Rails 子域路由重定向

    我们无法更改服务器配置文件 因此我们需要在 Rails 级别进行重定向 我对外部站点的路径重定向没有问题 例如 match meow gt redirect http meow com 问题出在子域上 我需要重定向 例如 http my e
  • SPOJ:洗牌

    最近开始解答网上评委的问题 我被困在SPOJ 中的这个问题 http www spoj pl problems CODESPTC 下面是洗 N 张牌的算法 这些牌被分成 K 个相等的牌堆 其中 K 是 N 的因数 底部的 N K 张牌按相同
  • Rails 中的部分 SSL

    我正在寻找在 Rails 中做一个部分 SSL 站点 我基本上想保护 SSL 背后的用户操作 但仅此而已 有人知道有一个插件或 gem 可以让这个变得简单而高效吗 这通常是通过SSL 要求 http github com rails ssl
  • 未收到从 MFMailComposer 发送的附件

    我正在尝试在 iPad 上发送一封带有 csv 附件的电子邮件 我根据下面显示的许多示例使用 MFMailComposer 发送电子邮件时 我可以在 MFMailComposer 窗口中看到正确的文件附件 但是当我收到电子邮件时 没有附加任
  • 创建C# Winform开发生产环境

    我想知道为我的 C winforms 项目正确创建开发和生产环境的最佳方法是什么 不幸的是没有开发环境 相反 每次我希望创建生产或开发版本时 我都必须指定发布路径 此外 由于每个产品或开发版本都使用不同的连接字符串 因此我也必须进入代码并更