最近被赋予了将MVC项目加载到TeamCity的任务。话虽如此,我了解到必须部署MVC应用程序,这与大多数“普通”Web应用程序不同。
所有这些都在考虑之中,我就像其他任何人一样构建项目构建任务,做了一些麻烦和谷歌的麻烦。
以下是我最终的结果:
我已经读过我需要为服务器安装Web部署项目,但是我们没有在服务器上安装Visual Studio,只有TeamCity 8.x。
就个人而言,我想尝试将开发软件保留在服务器上,这样它就是客户端服务器的真实模型。
我需要放入什么其他设置,或者如果我必须拆分Build&部署成两个单独的任务,第二个任务应该是什么?
答案 0 :(得分: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%
是网站的目标位置。