从一个解决方案中连续部署多个项目c#

时间:2014-06-20 08:29:43

标签: c# wcf asp.net-mvc-4 tfs continuous-deployment

我有一个包含多个项目的解决方案:

Project1 - 类库 Project2 - MVC Project3 - 类库 Project4 - WCF

我现在希望TFS构建所有项目,但也自动将MVC项目部署到http://somehost/MVC 和WCF到http://somehost/WCF

我试图改变我的构建定义,但只是部署了MVC。

顺便说一句:在TFS上启用了门控登记。

2 个答案:

答案 0 :(得分:2)

我遇到了这个问题,我通过手动编辑项目文件解决了这个问题。

这样TFS将在构建时部署这两个项目。请注意构建配置名称 - 我特别为我的TFS构建定义创建了这些名称(我有2个构建定义:Dev& QA)。将propery组应用于这些定义意味着在运行调试配置时,每次在dev环境中构建项目时都不会部署项目。这也意味着我可以部署到不同的位置,具体取决于我是运行QA还是Dev build。

示例:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DEV-BUILD-|AnyCPU'">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <DeployOnBuild>true</DeployOnBuild>
    <DeployTarget>MsDeployPublish</DeployTarget>
    <MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod>
    <MSDeployServiceUrl>http://DEV-SERVER-ADDRESS</MSDeployServiceUrl>
    <DeployIisAppPath>PROJECTminder.API-MAINTENANCE</DeployIisAppPath>
    <UserName><MACHINE-NAME>\BuildUser</UserName>
    <Password>*****</Password>
    <AuthType>Basic</AuthType>
    <AllowUntrustedCertificate>true</AllowUntrustedCertificate>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'QA-BUILD|AnyCPU'">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <DeployOnBuild>true</DeployOnBuild>
    <DeployTarget>MsDeployPublish</DeployTarget>
    <MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod>
    <MSDeployServiceUrl>http://QA-SERVER-ADDRESS</MSDeployServiceUrl>
    <DeployIisAppPath>PROJECTminder.API</DeployIisAppPath>
    <UserName><MACHINE-NAME>\BuildUser</UserName>
    <Password>*****</Password>
    <AuthType>Basic</AuthType>
    <AllowUntrustedCertificate>true</AllowUntrustedCertificate>
  </PropertyGroup>

<强> 更新

我应该补充一点,这是我对VS2010的解决方案。我相信在较新的版本(2012+)中,您实际上可以定义TFS将选择的每个项目(.pubxml)的发布配置文件。

答案 1 :(得分:1)

我使用Octopus Deploy。使用默认的构建过程模板,您可以 触发Post-build Powershell脚本。在此脚本中,您可以创建NuGet包,创建发行版并将其部署到许多服务器。 在Octopus Deploy文档中,是一种创建要部署Create Packages with TFS的包的方法。有关于TFS和Octopus Deploy here的集成的博客文章。