Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将.NET 4.0控制台应用程序部署到不同的环境_C#_Visual Studio 2010_Deployment_.net 4.0_Vdproj - Fatal编程技术网

C# 将.NET 4.0控制台应用程序部署到不同的环境

C# 将.NET 4.0控制台应用程序部署到不同的环境,c#,visual-studio-2010,deployment,.net-4.0,vdproj,C#,Visual Studio 2010,Deployment,.net 4.0,Vdproj,我创建了一个控制台应用程序,负责从数据库生成数据导出。必须将其部署到与数据库运行位置不同的批处理服务器。在app.config中,我需要配置到数据库的connectionstring。我有大约八个环境需要部署这个控制台应用程序。到目前为止,我需要存储每个环境的原始配置文件,并将其分别复制到安装文件夹中 我知道的第一件事是在VisualStudio中将文件添加到安装项目中。在主输出旁边,我添加了所有配置文件,其中包含一个condition属性。我在安装向导(文本框)中添加了一个屏幕,要求安装的用户

我创建了一个控制台应用程序,负责从数据库生成数据导出。必须将其部署到与数据库运行位置不同的批处理服务器。在app.config中,我需要配置到数据库的connectionstring。我有大约八个环境需要部署这个控制台应用程序。到目前为止,我需要存储每个环境的原始配置文件,并将其分别复制到安装文件夹中

我知道的第一件事是在VisualStudio中将文件添加到安装项目中。在主输出旁边,我添加了所有配置文件,其中包含一个condition属性。我在安装向导(文本框)中添加了一个屏幕,要求安装的用户输入我指定的环境名称。我在一个安装项目中成功地配置了这个,但在两个项目中,我的解决方案不正确。在这些情况下,我总是在安装文件夹中使用app.config文件,而不是在安装项目中创建的配置文件。当我重命名这些文件时,只有在安装过程中输入正确的详细信息时才能看到它们。所以我猜我的文件被我项目中的app.config覆盖了

我的安装程序的生成结果:

Building file 'C:\MyProject\MyProject.Setup\Deploy\MyProject.msi'...
Packaging file 'MyProject.exe.config'...
Packaging file 'MyProject.exe'...
Packaging file 'MyProject.exe.config'...
Packaging file 'MyProject.exe.config'...

有人知道这里失败的是什么吗?我需要特殊条件或设置吗?或者另一种部署策略。手动编辑配置文件不是一个选项。我感谢所有的帮助。提前感谢。

如果只是关于连接字符串,请添加对部署到文件夹中的第二个配置文件的引用,如:

<connectionStrings configSource="connectionstrings.config" />

如果只是关于连接字符串,请添加对部署到文件夹中的第二个配置文件的引用,如:

<connectionStrings configSource="connectionstrings.config" />

只需使用SlowCheetah并应用配置转换,请参见

只需使用SlowCheetah并应用配置转换,请参见