Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/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#_C#_Wcf_Asp.net Mvc 4_Tfs_Continuous Deployment - Fatal编程技术网

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

从一个解决方案连续部署多个项目c#,c#,wcf,asp.net-mvc-4,tfs,continuous-deployment,C#,Wcf,Asp.net Mvc 4,Tfs,Continuous Deployment,我有一个包含多个项目的解决方案: Project1-类库 项目2-MVC 项目3-类库 项目4-WCF 现在,我希望TFS构建所有项目,但同时也自动将MVC项目部署到http://somehost/MVC 和WCF到http://somehost/WCF 我试图更改我的构建定义,但只有MVC得到了部署 顺便说一下:在TFS上启用了门控签入。我使用它。使用默认的生成过程模板,您可以 触发生成后Powershell脚本。在这个脚本中,您可以创建NuGet包,创建一个发行版并将它们部署到多个服务器。

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

Project1-类库 项目2-MVC 项目3-类库 项目4-WCF

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

我试图更改我的构建定义,但只有MVC得到了部署

顺便说一下:在TFS上启用了门控签入。

我使用它。使用默认的生成过程模板,您可以 触发生成后Powershell脚本。在这个脚本中,您可以创建NuGet包,创建一个发行版并将它们部署到多个服务器。
在Octopus Deploy文档中,是一种创建要部署的包的方法。有一篇关于TFS和Octopus Deploy集成的博文。

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

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

例如:

<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>

真的
满的
假的
垃圾箱\
调试;痕迹
促使
4.
真的
MsDeployPublish
远程代理
http://DEV-SERVER-ADDRESS
PROJECTminder.API-MAINTENANCE
\建筑用户
*****
基本的
真的
pdbonly
真的
垃圾箱\
痕迹
促使
4.
真的
MsDeployPublish
远程代理
http://QA-SERVER-ADDRESS
PROJECTminder.API
\建筑用户
*****
基本的
真的
更新:


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

只需设置两个版本,一个用于MVC项目,另一个用于WCF服务。当您签入解决方案时,这两个版本都可以运行。这也是我最后使用的,只需知道您可以使用自定义参数,并且不必重载配置即可实现这一点。我同意八达通部署是处理部署的更好方式