我在使用Jenkins时遇到了问题,无法正确地使用MSBuild并将构建好的网站部署到Web服务器上。
我已经在Visual Studio 2012中创建了网站,并使用向导创建了一个发布配置文件,可以成功地发布到我的Web服务器。然后,我在同一台PC上使用MSBuild的命令行版本来测试命令行参数是否正确...结果是正确的!因此,我在Jenkins中添加了一个MSBuild构建步骤,指向相同的.sln文件并使用相同的参数,但由于某种原因它并没有像预期那样进行Web部署,而只是创建了一个zip文件。我无法找到任何告诉它应该这样打包的东西,正在有些发疯。
我正在使用的VS创建的发布配置文件如下:
我已经在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>
在命令行中,我使用以下命令:
msbuild mvcCPE.sln /property:Configuration=Release /property:DeployOnBuild=True /property:PublishProfile=mvcCPE.pubxml /property:Password=xxxxxx
在 Jenkins 中我有以下内容:
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还比较陌生)。