【问题标题】:Jenkins - MSBuild Web Deploy creating zip instead of deployingJenkins - MSBuild Web 部署创建 zip 而不是部署
【发布时间】:2013-06-26 14:50:08
【问题描述】:

我在让 Jenkins 正确使用 MSBuild 并将我构建的网站部署到 Web 服务器时遇到问题。

到目前为止,我已经在 Visual Studio 2012 中创建了网站,并使用其中的向导创建了一个发布配置文件,该配置文件将成功发布到我的 Web 服务器。然后,我在同一台 PC 上使用了 MSBuild 的命令行版本来测试命令行参数是否正常工作......他们可以!然后,我在 Jenkins 中添加了一个构建步骤,用于指向相同的 .sln 文件并使用相同的参数的 MSBuild,但由于某种原因,它没有按预期进行 Web 部署,它只是创建了一个 zip 文件。我看不到任何东西告诉它应该像这样包装它,我有点发疯了。

VS 创建(我正在使用)的发布配置文件如下:

    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <MSDeployServiceURL>http://10.215.134.184/msdeployagentservice</MSDeployServiceURL>
    <DeployIisAppPath>Default Web Site/mvcCPE</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod>
    <EnableMSDeployBackup>False</EnableMSDeployBackup>
    <UserName>Administrator</UserName>
    <_SavePWD>True</_SavePWD>
    <PublishDatabaseSettings>
      <Objects xmlns="">
        <ObjectGroup Name="DefaultConnection" Order="1" Enabled="False">
          <Destination Path="" />
          <Object Type="DbDacFx">
            <PreSource Path="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-mvcCPE-20130228154150;Integrated Security=True" includeData="False" />
            <Source Path="$(IntermediateOutputPath)AutoScripts\DefaultConnection_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
          </Object>
          <UpdateFrom Type="Web.Config">
            <Source MatchValue="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-mvcCPE-20130228154150;Integrated Security=SSPI" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
          </UpdateFrom>
        </ObjectGroup>
      </Objects>
    </PublishDatabaseSettings>
  </PropertyGroup>
  <ItemGroup>
    <MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String" />
  </ItemGroup>
</Project>

在命令行我使用以下命令:

msbuild mvcCPE.sln /property:Configuration=Release /property:DeployOnBuild=True /property:PublishProfile=mvcCPE.pubxml /property:Password=xxxxxx

在詹金斯我有以下几点:

MSBuild Version: v4.0.30319
MSBuild Build File: C:\Program Files\Jenkins\jobs\CPE2\workspace\mvcCPE.sln
Command Line Arguments: /property:Configuration=Release /property:DeployOnBuild=True /property:PublishProfile=mvcCPE.pubxml /property:Password=nimdasys

据我所知,Jenkins 应该正在构建我的站点并将其部署到服务器上,但事实并非如此。非常感谢任何帮助(我对 Jenkins 和 VS 还很陌生)。

【问题讨论】:

    标签: asp.net-mvc visual-studio-2012 msbuild jenkins webdeploy


    【解决方案1】:

    事实证明,更多研究提供了如何解决此问题的最后提示。

    今天早上经过一番搜索后,我找到了here 的帖子,它谈论的是在没有 VS 的情况下在 Jenkins 上构建项目。按照那里的答案的建议,我将开发 PC 上 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0 上的文件夹和文件复制到构建 PC 上的同一位置,并使用附加开关 /property:VisualStudioVersion=11.0 再次运行构建。这导致我收到错误:

    C:\Program Files\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(3676,5): error : Package/Publish task Microsoft.Web.Publishing.Tasks.IsCleanMSDeployPackageNeeded failed to load Web Deploy assemblies. Microsoft Web Deploy is not correctly installed on this machine. Microsoft Web Deploy v3 or higher is recommended. [C:\Program Files\Jenkins\jobs\Call_Plan_Editor_2\workspace\mvcCPE\mvcCPE.csproj]
    

    所以事实证明,我实际上根本没有在构建服务器上加载 Web Deploy 程序集(这就是当你让别人用你需要的“一切”设置它时得到的!)所以我下载并安装了 Microsoft 的 Web Deploy V3,经过多次调整后,它现在可以正确构建和部署。

    希望没有其他人像我一样迟钝地错过这些事情,但我想回答我自己的问题,因为我讨厌找到只是说“好的,我修好了”的帖子而没有解释。

    【讨论】:

      【解决方案2】:

      还必须在客户端安装 Web Deploy。用于部署的机器。

      【讨论】:

        猜你喜欢
        • 2013-05-31
        • 1970-01-01
        • 2018-01-19
        • 2017-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-15
        相关资源
        最近更新 更多