TFS 2015“vNext”为解决方案中的Web项目构建

时间:2016-03-23 03:08:29

标签: c# asp.net tfs build

我正在尝试在TFS 2015上设置vNext构建定义(该项目实际上是一个.NET 4.6.1 Web项目,但我想使用新的TFS构建设置)。我正在努力寻找仅在我的解决方案中部署特定Web项目的文档(2个Web项目,3个类库和后续测试)。

在XAML构建方法中,我将在Process>中指定与构建相关的.sln和.csproj文件。 2.构建>项目输入。 “Visual Studio Build”步骤不允许以相同的方式输入多个项目,这似乎是我陷入困境的地方。如果我只指定.csproj,则Nuget包不会被恢复,并且构建失败。

是否有任何已知文档仅通过这些vNext构建部署C#Web项目(.csproj)?

以前在XAML Build中使用的MSBuild参数:

/p:AllowUntrustedCertificate=True /p:AuthType=NTLM /p:Configuration=Development /p:DeployOnBuild=True /p:PublishProfile="DEV" /toolsversion:14.0 /p:VisualStudioVersion=14.0 /p:GenerateBuildInfoConfigFile=false

我正在寻找的解决方案将实现以下目标:

  1. 至少构建具有项目依赖性的Web.csproj
  2. 恢复Nuget包
  3. 转换网络配置
  4. 通过理想的Web部署
  5. 将Web项目部署到两个单独的服务器(非Azure!)

    感谢先进的任何帮助。希望这是可能的!

    注意:我不在Azure上,Azure不是一个选项。我知道Azure用户有大量记录的用例场景,这很棒......但是,是的。

1 个答案:

答案 0 :(得分:1)

您可以添加" NuGet安装程序"构建定义顶部的任务,用于还原解决方案的nuget包,并在Visual Studio Build Step中指定.csproj。 enter image description here

如果您想构建整个解决方案,可以在" MSBuild Arguments"中添加以下参数:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"

这将在" $(build.artifactstagingdirectory)\"中单独为您的项目创建部署包。文件夹如下: enter image description here

然后,您可以选择要部署的项目的包。使用部署包,您可以添加两个"命令行"构建定义中的任务和调用" Project.deploy.cmd"在" $(build.artifactstagingdirectory)\"用于将项目部署到服务器的文件夹。有关从命令部署的参考:Executing the Command File。如果您已正确配置,则默认情况下会转换Web.config。

顺便说一句,我建议您使用发布管理系统部署项目,而不是在构建中部署它们。