Jenkins - MSBuild Web Deploy创建zip而不是部署

Chr*_*rch 3 msbuild asp.net-mvc webdeploy jenkins visual-studio-2012

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

到目前为止,我已在Visual Studio 2012中创建了该网站,并使用该向导创建了一个发布配置文件,该配置文件将成功发布到我的Web服务器.然后我在同一台PC上使用命令行版本的MSBuild来测试命令行参数是否正常工作......他们这样做了!从那时起,我在Jenkins中为MSBuild添加了一个构建步骤,指向同一个.sln文件并使用相同的参数但由于某种原因它没有按预期进行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>
Run Code Online (Sandbox Code Playgroud)

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

msbuild mvcCPE.sln /property:Configuration=Release /property:DeployOnBuild=True /property:PublishProfile=mvcCPE.pubxml /property:Password=xxxxxx
Run Code Online (Sandbox Code Playgroud)

在詹金斯,我有以下几点:

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
Run Code Online (Sandbox Code Playgroud)

据我所知,Jenkins应该构建并将我的站点部署到服务器,但事实并非如此.非常感谢任何帮助(我对Jenkins和VS相当新).

Chr*_*rch 7

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

经过今天早上的搜索后,我发现这里的帖子是关于在没有VS的情况下在Jenkins上构建项目的.根据答案的建议,我将C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0我的开发PC上的文件夹和文件复制到我的构建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]
Run Code Online (Sandbox Code Playgroud)

事实证明,我根本没有在构建服务器上加载Web Deploy程序集(当你让其他人用你需要的'所有'设置它时,你得到的就是这样!)所以我下载并安装了Web Deploy来自微软的V3,经过几次调整后,它现在可以正确构建和部署.

希望没有其他人像我一样慢慢错过这样的事情,但我想回答我自己的问题,因为我讨厌找到的帖子只是说"好吧,我修好了"而没有进行探索.