【问题标题】:TFS 2015 Visual Studio Build - Package .zip not being createdTFS 2015 Visual Studio 构建 - 未创建包 .zip
【发布时间】:2018-05-24 12:18:15
【问题描述】:

我正在尝试构建我的解决方案并将 Web 应用程序打包到要部署的 Web 部署 (.zip) 包中。

我添加了带有以下 MSBuild 参数的 Visual Studio Build 步骤:

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

我已经设置了复制和发布构建工件步骤,将所有 .zip 文件复制到放置文件夹。

构建成功完成,但没有任何内容复制到放置文件夹,因为没有创建任何 .zip 包。

所以当我查看 TFS 服务器时,“a”文件夹中唯一的东西是一个空的“drop”文件夹。在“s”文件夹中是解决方案目录,其中包含 PrecompiledWeb 文件夹。不确定那是什么,但它看起来不像部署包(而且它不是 .zip)。

有什么想法吗?

【问题讨论】:

标签: visual-studio tfs msbuild tfsbuild


【解决方案1】:

我在使用 VSTS 和 TFS 2015.2.1 的 VS2015 MVC Web 应用程序上进行了相同的尝试。我不得不对 Visual Studio 构建中的构建参数做一些细微的改变。那就是删除 /p:PackageLocation="$(build.artifactstagingdirectory)\" 中的尾随“\”。

这是我传递给 Visual Studio 构建步骤的参数

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

然后我使用了复制和发布的构建工件(在 VSTS 中已弃用,您应该使用复制任务和发布任务而不是此任务),如下所示

这给了我如下输出。

【讨论】:

    【解决方案2】:

    首先建议你在构建代理中手动远程,通过带参数的MSBuild命令行构建项目,看看项目是否构建正确。

    这将缩小与构建代理环境或构建定义相关的问题。

    你应该直接使用/p:PackageLocation=$(build.stagingDirectory

    此外,由于您在 Web 应用程序中引用了多个程序集。还请仔细检查以正确顺序构建或正确引用的依赖项。

    【讨论】:

      【解决方案3】:

      确保已安装 Visual Studio 的 ASP.NET 开发工作负载。

      如果DeployOnBuild 无效,您可能需要使用 VS 安装工具安装 ASP.NET 开发“工作负载”。

      有特定的 .targets 文件,如果它们不存在,会导致这些参数被静默忽略。安装它会添加这些 .targets 并且参数变为活动状态,从而允许创建 .zip。

      对我(VS 2017)而言,缺少但需要的相关目标文件(或其中一个)是:

      C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets

      如果它丢失了,你需要按照上面的方法安装,如果它在那里,那么你有一个不同的问题。 ;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-29
        • 1970-01-01
        • 1970-01-01
        • 2016-04-09
        • 1970-01-01
        • 2018-08-20
        • 2016-11-08
        • 2017-07-30
        相关资源
        最近更新 更多