【问题标题】:TFS 2015 "vNext" Build for web project in solutionTFS 2015“vNext”为解决方案中的 Web 项目构建
【发布时间】:2016-07-10 04:59:37
【问题描述】:

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

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

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

以前在 XAML 构建中使用的 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 部署将 Web 项目部署到两个单独的服务器(非 Azure!)

在此先感谢您的帮助。希望这是可能的!

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

【问题讨论】:

    标签: c# asp.net tfs build


    【解决方案1】:

    您可以在构建定义的顶部添加“NuGet 安装程序”任务,以恢复解决方案的 nuget 包,并在 Visual Studio 构建步骤中指定 .csproj。

    如果要构建整个解决方案,可以在“MSBuild Arguments”中添加以下参数:

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

    这将在“$(build.artifactstagingdirectory)\”文件夹中分别为您的项目创建部署包,如下所示:

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

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

    【讨论】:

      猜你喜欢
      • 2018-05-24
      • 2016-09-24
      • 2016-08-18
      • 2019-02-26
      • 2011-06-07
      • 2011-01-07
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      相关资源
      最近更新 更多