TFS 2015 Visual Studio Build - 未创建包.zip

时间:2017-12-11 00:47:27

标签: visual-studio tfs msbuild tfsbuild

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

我已使用以下MSBuild参数添加了 Visual Studio Build 步骤:

  

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

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

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

因此,当我查看TFS服务器时,' a'文件夹是空的' drop'夹。在'' folder是包含PrecompiledWeb文件夹的解决方案目录。不确定是什么,但它看起来不像部署包(并且它不是.zip)。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我在使用VSTS和TFS 2015.2.1的VS2015 MVC Web应用程序上尝试过相同的操作。我不得不对Visual Studio构建中的Build参数稍作修改。那就是删除/ p中的尾随“\”:PackageLocation =“$(build.artifactstagingdirectory)\”。

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

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

然后我使用了Copy和Published Build Artifacts(在VSTS中不推荐使用Copy task and Publish task而不是这个任务),如下所示

enter image description here

这给我输出如下。

enter image description here

答案 1 :(得分:1)

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

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

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

此外,因为您有多个在Web应用程序中引用的程序集。还请仔细检查以正确顺序构建或正确引用的依赖关系。

答案 2 :(得分:0)

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

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

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

对我来说(VS 2017)缺少但需要的相关目标文件(或者无论如何,其中一个)是:

  

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

如果缺少该组件,则需要按上述步骤安装,如果已安装,则存在另一个问题。 ;)