2013-07-15 175 views
1

最近被赋予了将一个MVC项目加载到TeamCity中的任务。据说,我了解到MVC应用程序必须部署,与大多数“普通”Web应用程序不同。MSBuild没有在构建任务中部署MVC应用程序

所有的考虑,我建立项目生成任务就像任何其他人一样,做了一些麻烦和ALOT的谷歌。

这里是我结束了:

  • 亚军类型:MSBuild的
  • MSBuildVersion:4.0
  • 的MSBuild ToolsVersion:4.0
  • 运行平台:64
  • 目标:建设;发布
  • 命令行参数:/p:Configuration=Staging;PackageLocation="C:\Sites\temp_publish\project\prod\project.zip“

我读过,我需要为服务器安装Web部署项目,但我们没有在服务器上安装Visual Studio,只有TeamCity 8.x.个人而言,我想尝试将开发软件关闭在服务器上,以便它是客户端服务器的真实模型。

我需要放什么其他设置,或者如果我必须拆分构建&将部署到两个独立的任务,第二个任务应该是什么?

回答

2

花了我一段时间回到我最初发布的问题。

最终的解决方案是将其添加到csproj文件中。

<Target Name="PublishToFileSystem" DependsOnTargets="PipelinePreDeployCopyAllFilesToOneFolder"> 
    <Error Condition="'$(PublishDestination)'==''" Text="The PublishDestination property must be set to the intended publishing destination." /> 
    <MakeDir Condition="!Exists($(PublishDestination))" Directories="$(PublishDirectories)" /> 
    <ItemGroup> 
     <PublishFiles Include="$(_PackageTempDir)\**\*.*" /> 
    </ItemGroup> 
    <Copy SourceFiles="@(PublishFiles)" DestinationFiles="@(PublishFiles->'$(PublishDestination)\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" /> 
</Target> 

,然后引用生成目标:PublishToFileSystem

参数的MSBuild的一部分,最后变成:

/p:Configuration=Release;PublishDestination=%WebSiteDirectory% 

%WebSiteDirectory%是为网站的目标位置。

相关问题