创建C#Winform开发和生产环境

时间:2009-08-27 19:26:35

标签: c# winforms development-environment production-environment

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

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

有什么想法吗?

提前致谢!

4 个答案:

答案 0 :(得分:3)

我不确定你的意思

  

不幸的是,有   没有发展环境。

但是,我会指出你可以处理像

这样的事情
  

此外,因为每个prod或dev构建使用   我必须使用不同的连接字符串   然后进入代码并改变它   同样。

带有条件编译标志的

。例如,你可以这样:

#if DEBUG
connString = "ABC";
#else
connString = "DEF";
#endif

DEBUG可能不适合您的环境。您可以定义自己的标志,例如PROD或DEV,并指定是为特定的构建类型定义它们,还是在IDE外部构建时从命令行定义。

<强>更新

自最初发布此答案以来,SlowCheetah已经可用。它允许每个构建配置为您的app.config / web.config(以及任何其他XML文件,如NLog配置文件)进行XML转换。因此,如果你说QA构建配置,你可以对QA进行XML转换,例如QA环境的适当连接字符串。

这是很多首选放置配置字符串和类似的源代码。

答案 1 :(得分:3)

<强>更新

Whew,2009肯定是很久以前;)我将留下原始答案给后人,但是,Eric J. already stated in an updated version of his post in 2012Slowcheetah是解决这个问题的一种更灵活的方法。它让你为每个配置创建多个配置文件。

原始回答

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

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

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

如果您正在使用VS2005设置窗格(在项目设置中),则可以在其中设置2个连接字符串并使用该字符串而不是常量值。如果您使用任何.Net DataSource,则可以始终使用DEV连接字符串来创建对象。

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

答案 2 :(得分:1)

您可以从配置文件中读取连接字符串。

然后,您将在PROD和DEV中使用相同的程序文件,只是一个不同的配置文件。

答案 3 :(得分:1)

使用Virtual PC创建单独的环境怎么样?这是现在最好的做法。