TFS 构建成功,但为啥没有将任何内容部署到目标系统文件夹

Posted

技术标签:

【中文标题】TFS 构建成功,但为啥没有将任何内容部署到目标系统文件夹【英文标题】:TFS Build is Successful, but why does it not deploy anything to the Target Systems FolderTFS 构建成功,但为什么没有将任何内容部署到目标系统文件夹 【发布时间】:2020-08-24 13:28:06 【问题描述】:

我正在尝试在 VS 2017 中创建 TFS 版本。这是一个 Web 部署。我已经能够成功创建并运行构建,但是当我检查目标系统的文件夹时,没有任何更新。另一方面,如果我按下 Visual Studio 中的“发布”按钮,我可以让它工作。正如您在下面看到的,我已经验证了我的连接。

我的 TFS 进程中是否缺少任何东西,特别是在我缺少的 MSBuild 参数中?或者它是我在 Visual Studio 中发布配置文件中的内容?另外,有什么地方可以检查一些日志吗?我检查了 Inetpub 下的日志,但什么也没看到。

以下是我的发布配置文件配置:

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <LastUsedBuildConfiguration>KFSS_DEV</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <MSDeployServiceURL>bushknapp03dev.chicagobooth.edu</MSDeployServiceURL>
    <DeployIisAppPath>kiltsfiles-dev.chicagobooth.edu</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <EnableMSDeployBackup>True</EnableMSDeployBackup>
    <UserName>gsb\ssa-ap-devapps</UserName>
    <_SavePWD>True</_SavePWD>
    <PublishDatabaseSettings>
      <Objects>
        <ObjectGroup Name="KiltsFileSelectionSystemConnectionString" Order="1" Enabled="False">
          <Destination Path="" />
          <Object Type="DbDacFx">
            <PreSource Path="Data Source=bushkndb01dev;Initial Catalog=KiltsFileSelectionSystem;Integrated Security=True" includeData="False" />
            <Source Path="$(IntermediateOutputPath)AutoScripts\KiltsFileSelectionSystemConnectionString_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
          </Object>
          <UpdateFrom Type="Web.Config">
            <Source MatchValue="Data Source=bushkndb01dev;Initial Catalog=KiltsFileSelectionSystem;Integrated Security=True" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
          </UpdateFrom>
        </ObjectGroup>
        <ObjectGroup Name="KiltsFileSelectionSystemEntities" Order="2" Enabled="False">
          <Destination Path="" />
          <Object Type="DbDacFx">
            <PreSource Path="Data Source=bushkndb01dev;Initial Catalog=KiltsFileSelectionSystem;Integrated Security=True;Application Name=EntityFramework" includeData="False" />
            <Source Path="$(IntermediateOutputPath)AutoScripts\KiltsFileSelectionSystemEntities_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
          </Object>
          <UpdateFrom Type="Web.Config">
            <Source MatchValue="metadata=res://*/KiltsFilesModel.csdl|res://*/KiltsFilesModel.ssdl|res://*/KiltsFilesModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=bushkndb01dev;initial catalog=KiltsFileSelectionSystem;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
          </UpdateFrom>
        </ObjectGroup>
        <ObjectGroup Name="TelerikVSXConnectionString" Order="3" Enabled="False">
          <Destination Path="" />
          <Object Type="DbDacFx">
            <PreSource Path="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TelerikVSX.mdf;Integrated Security=True;User Instance=True" includeData="False" />
            <Source Path="$(IntermediateOutputPath)AutoScripts\TelerikVSXConnectionString_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
          </Object>
          <UpdateFrom Type="Web.Config">
            <Source MatchValue="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TelerikVSX.mdf;Integrated Security=True;User Instance=True" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
          </UpdateFrom>
        </ObjectGroup>
        <ObjectGroup Name="ApplicationServices" Order="4" Enabled="False">
          <Destination Path="" />
          <Object Type="DbDacFx">
            <PreSource Path="Data Source=bushkndb01dev;Initial Catalog=aspnetdb;Integrated Security=True" includeData="False" />
            <Source Path="$(IntermediateOutputPath)AutoScripts\ApplicationServices_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
          </Object>
          <UpdateFrom Type="Web.Config">
            <Source MatchValue="Data Source=bushkndb01dev;Initial Catalog=aspnetdb;Integrated Security=True" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
          </UpdateFrom>
        </ObjectGroup>
      </Objects>
    </PublishDatabaseSettings>
    <PrecompileBeforePublish>True</PrecompileBeforePublish>
    <EnableUpdateable>True</EnableUpdateable>
    <DebugSymbols>False</DebugSymbols>
    <WDPMergeOption>DonotMerge</WDPMergeOption>
  </PropertyGroup>
  <ItemGroup>
    <MSDeployParameterValue Include="KiltsFileSelectionSystemConnectionString-Web.config Connection String">
      <UpdateDestWebConfig>False</UpdateDestWebConfig>
    </MSDeployParameterValue>
    <MSDeployParameterValue Include="$(DeployParameterPrefix)KiltsFileSelectionSystemEntities-Web.config Connection String" />
    <MSDeployParameterValue Include="$(DeployParameterPrefix)TelerikVSXConnectionString-Web.config Connection String" />
    <MSDeployParameterValue Include="ApplicationServices-Web.config Connection String">
      <UpdateDestWebConfig>False</UpdateDestWebConfig>
    </MSDeployParameterValue>
  </ItemGroup>
</Project>

这是我的 TFS 构建的结果:

我在 KFSS_DEV 下设置了我的发布配置文件,验证了与目标系统的连接。

另外,这里是 TFS 构建过程:

【问题讨论】:

您使用的是什么版本的 TFS?这是一个 XAML 版本,已弃用超过 5 年。 我们的 TFS 版本是 16.131.28601.4 TFvcTemplate.14.xaml @PaulT.Rykiel 如果将日志记录详细程度设置为诊断,是否可以获得更多信息?如果在构建代理机器上手动从 MSBuild 命令行部署,结果如何? 【参考方案1】:

尝试将日志记录详细程度设置为diagnostic,并在构建定义中添加/p:OutDir="xxxxx" 参数。

顺便推荐migrate from XAML builds to new builds。

【讨论】:

谢谢大家。我会尝试这些建议。我无法改变我们构建的方式,我必须与我的团队保持一致。此外,还有一件事正在部署在一个全新的服务器上,这是第一个部署在那里的应用程序。我们的服务器已退役,因为它是 R2008,现在我们处于最新级别。

以上是关于TFS 构建成功,但为啥没有将任何内容部署到目标系统文件夹的主要内容,如果未能解决你的问题,请参考以下文章

TFS和AWS之间的持续部署

仅使用 MSBuild 进行 TFS2012 夜间部署

为啥 TFS 代理没有发现 VSTEST 功能

TFS中的Robocopy构建PowerShell步骤报告失败但没有错误

将 Angular 应用程序部署到 Heroku,构建成功,但在浏览器中显示 404 not found

目标计算机上的 PowerShell 在 TFS 2018 发布管道中失败