创建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开发生产环境 的相关文章

  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • Mono 无法保存用户设置

    我在 Mono Ubuntu 上保存用户设置时遇到问题 这是代码示例 private void Form1 Load object sender EventArgs e string savedText Properties Setting
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 如果.Net Core可以在Windows上运行,为什么不能在.Net Framework中引用.Net Core DLL?

    我明白为什么 Net Framework 可能会在 Net Core IE 中导致问题 因为不存在特定于 Windows 平台的 API 但是为什么不能直接引用 Net Core 作为 Net Framework 中的库呢 如果 Net C
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • 如何在 VS 中键入时显示方法的完整文档?

    标题非常具有描述性 是否有任何扩展可以让我看到我正在输入的方法的完整文档 我想查看文档 因为我可以在对象浏览器中看到它 其中包含参数的描述和所有内容 而不仅仅是一些 摘要 当然可以选择查看所有覆盖 它可能是智能感知的一部分 或者我不知道它并
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • C++派生模板类继承自模板基类,无法调用基类构造函数[重复]

    这个问题在这里已经有答案了 我试图从基类 模板 继承 派生类也是模板 它们具有相同的类型 T 我收到编译错误 非法成员初始化 Base 不是基类或成员 为什么 如何调用基类构造函数 include
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • C# 搜索目录中包含字符串的所有文件,然后返回该字符串

    使用用户在文本框中输入的内容 我想搜索目录中的哪个文件包含该文本 然后我想解析出信息 但我似乎找不到该字符串或至少返回信息 任何帮助将不胜感激 我当前的代码 private void btnSearchSerial Click object
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • Silverlight Datagrid:在对列进行排序时突出显示整个列

    我的 Silverlight 应用程序中有一个 DataGrid 我想在对该列进行排序时突出显示整个列 它在概念上与上一个问题类似 Silverlight DataGrid 突出显示整列 https stackoverflow com qu
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

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

    从主表单 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 项目正确创建开发和生产环境的最佳方法是什么 不幸的是没有开发环境 相反 每次我希望创建生产或开发版本时 我都必须指定发布路径 此外 由于每个产品或开发版本都使用不同的连接字符串 因此我也必须进入代码并更