【问题标题】:TFS Continuous Integration and DeploymentTFS 持续集成和部署
【发布时间】:2017-03-20 02:42:43
【问题描述】:

我有一个 Web 项目项目 A 和一个库项目 B。 项目 B 正在构建到项目 A\Plugins 中。

问题是当通过 CI 构建项目 A 时,项目 B 没有与项目 A 一起部署。 CI 中的 MSBuild 参数是:

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

我将以下代码添加到项目 A.csproj 中,以使用 A 部署项目 B:

 <ItemGroup>
    <ProjectsToBuild Include="..\..\Plugins\**\*ProjectB*proj" />
  </ItemGroup>
  <Target Name="Plugin" AfterTargets="Build">
    <Message Text="Building Plugins" Importance="High" />
    <MSBuild Projects="@(ProjectsToBuild)" ContinueOnError="false" Properties="Configuration=$(Configuration)">
      <Output ItemName="OutputFiles" TaskParameter="TargetOutputs" />
    </MSBuild>

    <CallTarget Targets="CopyPlugins"/>
  </Target>


    <PropertyGroup>
        <PluginDirectory>Plugins</PluginDirectory>
    </PropertyGroup>
    <Target Name="CopyPlugins">
        <Message Text="Copying plugins to $(_PackageTempDir)\Plugins\ ($(ProjectDir)$(PluginDirectory))" Importance="high" />
        <CreateItem Include="$(ProjectDir)$(PluginDirectory)\**\*.*">
            <Output TaskParameter="Include" ItemName="PluginFiles" />
        </CreateItem>
        <Copy DestinationFolder="$(_PackageTempDir)\Plugins\" SourceFiles="@(PluginFiles)" SkipUnchangedFiles="true" />
    </Target>

在日志中执行顺序似乎很好(构建后复制),但部署后目标服务器上不存在插件文件夹。

我错过了什么吗?

【问题讨论】:

  • 您没有包含 ProjectA 和 ProjectB 的 .sln (解决方案)以及 ProjectA “按项目”(在 Visual Studio 中)引用 ProjectB 的原因吗?这会让事情变得更容易。
  • 您使用的是哪个版本的 TFS?您使用 XAML 构建还是基于任务的构建?你检查插件文件夹吗?请登录构建代理机器,并使用 MSBuild 命令行手动构建您的项目,看看您会得到什么结果。

标签: tfs msbuild


【解决方案1】:

文件需要包含在项目中。由于文件是动态生成的,您可以将此代码添加到项目文件中(例如XX.csproj)

  <Content Include="plugin\**\*.*" />

【讨论】:

  • 谢谢!像魅力一样工作! :)
【解决方案2】:

根据您的描述,您需要将 Project A\Plugins 文件夹签入 TFS。但不建议这样做。

我们建议您在同一解决方案中进行项目引用或创建 NuGet 用于包管理。建议在项目 B 中使用 build a nuget package,在构建项目 A 时使用 publish this Nuget package,然后在项目 A 中使用 restore the library

【讨论】:

    猜你喜欢
    • 2020-03-20
    • 2013-10-17
    • 2017-09-09
    • 1970-01-01
    • 2015-04-20
    • 2018-11-16
    • 2016-06-16
    • 2016-11-20
    • 2012-09-10
    相关资源
    最近更新 更多