问候,我试图找出如何与MSBuild和Visual Studio 2010下面的情况。
我想我对如何开始这个有点困惑,所以我能得到的任何帮助将是非常棒的。 我曾经考虑简单地对不同的服务名称进行硬编码,并使用条件编译语句来设置它们,但我认为这样做并不是一个特别清楚的方法。 有什么想法吗?
使用MSBuild或MSBuild扩展任务来构建和部署MSBuild时,将服务位压缩起来可能会更简单。 您可以将环境特定的配置数据放在msbuild .properties文件(mylocal.service.properites,qp.service.properties,uat.service.properties等)中。 这是我部署服务的方式。
注意:属性文件将包含像db连接字符串,TargetDir,ServiceName等
服务名称在安装时指定,请参阅下面的'sc','installutil'或WindowsService msbuild扩展包任务片段。 这意味着您可以复制相同的服务位everal目录并安装每个具有唯一的名称(例如QAService,UATService,PRODService)。
注意:我想强调的是,服务名称是部署时间的考虑因素,而不是构建时间的考虑因素。
<WindowsService TaskAction="Install" ServiceName="$(ServiceName)" MachineName="$(Targetserver)" ServicePath="$(FullServicePath)" User="$(User)" />
这个方法与MSI安装程序类似。 我假设你的安装程序提示输入所有必要的环境特定的配置数据…所有[体面的]安装程序都有一种方式来提供文件的答案,而不是交互式地使用安装程序。 因此,如上所述,您在每个环境中创建一个答案文件,并将其提供给命令行上的安装程序。
您不希望在构建时这样做,因此每个平台都有一个单独的安装程序。 被迫用古代版本的wyse安装程序来做到这一点。 让我伤心。 您希望单个MSI安装程序可以在每个环境中运行(给定环境特定的答案文件)。
MSI命令行和答案文件格式的详细信息因产品而异。 你正在使用什么安装程序包?
干杯,/ jhd