代码之家  ›  专栏  ›  技术社区  ›  Arjay H.

在TFS 2018中的Visual Studio生成任务期间,在DesktopPackageLocation中指定项目名称

  •  1
  • Arjay H.  · 技术社区  · 8 年前

    各位,

    我正在使用TFS 2018中的Visual Studio构建任务来构建多个。NET核心2.0 web应用程序。

    解决方案参数为: **\WebApp。*。sln公司

    每个解决方案都类似于WebApp。Prj1。sln、WebApp。Prj2。sln等。

    MSBuild参数包括: /p: DeployOnBuild=true/p:WebPublishMethod=Package/p:PackageAssingFile=false/p:SkipInvalidConfiguration=true/p:DesktopBuildPackageLocation=“$(build.artifactstagingdirectory)\WebApp.zip”

    我想要的是创建webapp。特定于我正在构建的解决方案的zip文件。换句话说,类似于: /p: DesktopBuildPackageLocation=“$(build.artifactstagingdirectory)\$(build.projectname).zip”

    我似乎无法找到一个内置变量来访问正在生成的解决方案或项目名称。

    这可能吗?如果没有,是否有人可以发布模拟Visual Studio构建任务的等效powershell脚本,以便我可以手动创建具有项目名称的zipfile?

    谢谢

    2 回复  |  直到 8 年前
        1
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    7 年前

    默认情况下不支持此操作,并且也没有内置变量。

    如果要自定义Visual Studio生成任务的PowerShell脚本。你可以找到 VSBuild.ps1 生成代理计算机上的生成代理工作目录\u work/vstsbuildxxtask文件夹下的脚本。

    看看这个帖子: Visual Studio Build step should allow multiple paths

    另一种方法是将多个Visual Studio生成任务与 Copy and Publish Build Artifacts 处理多个 $(build.artifactstagingdirectory)\$(build.projectname).zip 每个项目的包数。


    更新时间:

    此处已存在相关的uservoice条目 Using Variable in Solution Path in a Visual Studio Build Task

    对于您的请求,作为一种变通方法,您可以将整个解决方案路径作为构建变量应用,并在构建时对其进行更改。这意味着定义一个变量并设置值“$/存储库/开发/Prj1/网站名.sln”。如果要生成Prj2,请在排队生成时将Prj1更改为Prj2。

        2
  •  0
  •   Daniel Mann    8 年前

    使用多个Visual Studio生成任务,每个解决方案一个。