有没有人使用MsBuild进行安装?

时间:2009-03-21 04:23:59

标签: msbuild installer cruisecontrol.net

我注意到诸如Msbuild Extension PackMsBuild Community Tasks之类的项目使msbuild能够安装程序集,sql和安装IIS。这些功能似乎是面向安装而不是构建。

所以我想知道有多少人使用msbuild,也许与Cruise Control.Net一起在登台环境中安装?

7 个答案:

答案 0 :(得分:3)

我使用MsBuild进行构建,部分构建过程运行Wix以创建用于部署到生产的安装程序(MSI)。

答案 1 :(得分:2)

我使用msbuild为不同的目标环境编写了一些模板配置示例:http://blog.privosoft.com/2010/10/msbuild-environment-sandboxing.html

答案 2 :(得分:1)

我们使用CC.NET& MSBuild构建然后也发布到我们的开发和舞台环境,但是我们没有在CruiseControl.NET上实时推送,我们手动运行MSBuild。我们只是认为通过按钮发布直播是诱人的方式;)我们需要进行2到3次修改才能使我们的MSBuild设置正确。但现在一切都在一个文件中,所有内容都基于Targets和Properties来完成所有工作。大约6个月前,应该是最后一次更新,这是多服务器推送,所以我们准备扩大规模。我们现在可以将任何组件组合推送到任何服务器组合。因此,如果我们需要5个数据库服务器,3个contenet服务器和2个Web服务器,我们就有这种能力。无需使用任何其他东西。 MSBuild可以做到。

答案 3 :(得分:1)

我创建了一个部署系统,中央协调员可以:

- identify the right target server for a given component (e.g Windows service goes to a given server, web services go to another, etc.)
- perform a PsExec of a deployment MSBuild script on the target server
- the deployment MSBuild script is responsible for:
    a) downloading the right component package (in my case a .zip)
    b) backing up previous versions of the component
    c) extracting the package to the right place
    d) tailoring the installation steps to the type of component to deploy (e.g. needs to perform an Exec task of installutil.exe on a Windows service )
    e) logging the result of the deployment

该系统使用以下组合构建:

- core MSBuild tasks
- [Tigris MSBuild community tasks][1]
- [MS SDC tasks][2]
- and custom tasks

该系统允许我们跨虚拟服务器组成的分区环境(例如DEV,QA,UAT等)执行复杂应用程序的一致部署。

答案 4 :(得分:0)

我使用MSBuild构建一个相当大的客户端/服务器应用程序。我使用InstallShield 2008创建单独的客户端和服务器安装集。

通过在构建过程中添加自定义目标,您可以将安装程序的创建组合到构建中。

我建议您在尝试集成两者之前单独创建和测试构建和安装程序。

答案 5 :(得分:0)

我知道这是一个老问题......但是......

我目前正在使用MSBuild和MSBuild扩展包(http://msbuildextensionpack.codeplex.com)来完成我的整个部署。使用VS数据库命令行工具(vsdbcmd.exe - http://msdn.microsoft.com/en-us/library/dd193283.aspx)处理数据库部分。这个扩展包非常棒,让我可以构建网站,应用程序池,Windows服务,更新配置等等。

我还将Team City代理放在测试服务器上,因此我可以作为构建链的一部分进行部署(在Team City的第7版中引入)。从Team City运行我的部署MSBuild脚本非常容易。

答案 6 :(得分:0)

我曾经使用过MSBuild,现在我正在使用PowerShell。 MSBuild是一种构建语言。编写脚本很痛苦。我想做的很多很难,有时甚至是不可能的。

在过去的一年中,我创建了一个PowerShell模块,它等同于名为Carbon的MSBuild扩展包。

我强烈建议大家在那里学习和使用PowerShell。