【问题标题】:TeamCity publish using Visual Studio 2015TeamCity 使用 Visual Studio 2015 发布
【发布时间】:2016-05-14 13:25:06
【问题描述】:

我已经阅读了许多关于使用不同版本的 Visual Studio 从 TeamCity 发布的文章。我目前正在使用 TeamCity 和 Visual Studio 2015 的 v.9.1.7。

我在签到时有 3 个构建步骤:

  • 清理和重建
  • 单元测试
  • 发布

当我签入我的文件时,我会收到一条测试通过成功消息:

从这里我可以看出有些地方不对劲,因为我希望它会说一些关于出版的事情。当我查看构建日志时,我看到以下内容:

[12:48:22][API\API.sln] 发布 [12:48:22][发布] MSBuild [12:48:22][MSBuild] API\API\API.csproj:构建目标:发布 [12:48:22][API\API\API.csproj] _DeploymentUnpublishable

我的发布构建步骤是这样设置的:

在我的 Visual Studio API 项目中,我可以发布到网络上的正确位置。这是我的发布资料:

我不确定我错过了什么。当我在 Visual Studio 中单击 Build->Publish 菜单项时,我希望 Publishing 构建步骤能够正常工作。

我猜我遗漏了一些东西或误解了发布构建步骤应该做什么。

感谢任何帮助。

【问题讨论】:

  • 不确定这是否能解决问题,但发布步骤中的“目标”字段应根据注释将目标用空格或分号分隔,例如Rebuild;Publish

标签: visual-studio teamcity


【解决方案1】:

经过几天和几天的搜索,我能够让它工作。我在Stack Overflow 上找到了部分答案。诀窍是让它从 MSBuild 命令行工作:

C:\TFS\project\myProject\APIproject>msbuild apiproject.csproj /p:DeployOnBuild=true /p:PublishProfile="属性\PublishProfiles\DEV.pubxml" /p:VisualStudioVersion=14.0

一旦我运行了几次,我就能够在 Team City 中创建一个构建步骤(参见 question/answer)并设置以下内容:

  • 构建文件路径:<location of the apiproject.csproj>
  • MSBuild 版本:Microsoft Build Tools 2015
  • MSBuild 工具版本:14.0
  • 运行平台:x86
  • 命令行参数:/p:DeployOnBuild=true /p:PublishProfile= "C:\TFS\API\API\Properties\PublishProfiles\DEV.pubxml" /p:VisualStudioVersion=14.0

【讨论】:

  • 在哪里设置“构建文件路径”?
【解决方案2】:

IIRC,从 TeamCity 发布需要在构建代理上安装某些文件或 VS(这确实不推荐)。您是否已将必要的文件复制到构建代理?

【讨论】:

  • 什么是 IIRC?现在一切都在我的本地机器上。所以从技术上讲,我在 TC 所在的位置有 VS。一旦我把这一切都拨了进去,我就打算把它移到它自己的盒子里。
【解决方案3】:

工件位置在哪里定义。 您可以使用触手将构建发布到各种环境中。 我想,您需要查看工件配置。

【讨论】:

    【解决方案4】:

    您可以使用 MSBuild 运行器来部署您的应用程序/API

    添加命令行参数:

    /t:Clean /p:DeployOnBuild=true /t:build /t:publish /p:PublishProfile=C:\_works\teamcity\publishprofiles\Publiush_Profile.pubxml /p:VisualStudioVersion=12.0
    

    PublishPrfile URL 应该是您的发布配置文件路径。

    这对你有用。

    【讨论】:

      【解决方案5】:

      VS 可能会仅使用名称找到您的发布配置文件,例如: 如果您运行多个构建代理,/p:DeployOnBuild=true;/p:PublishProfile=DEV; 非常有用。

      如果您要部署到 IIS,您可能需要添加 AllowUntrustedCertificate=true;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多