1

最近被赋予了将 MVC 项目加载到 TeamCity 的任务。话虽如此,我了解到必须部署 MVC 应用程序,这与大多数“普通”Web 应用程序不同。

考虑到所有这些,我像其他任何人一样构建项目构建任务,做了一些麻烦和很多 google'ing。

这是我最终得到的:

  • 跑步者类型:MSBuild
  • MSBuild 版本:4.0
  • MSBuild 工具版本:4.0
  • 运行平台:x64
  • 目标:构建;发布
  • 命令行参数:/p:Configuration=Staging;PackageLocation="C:\Sites\temp_publish\project\prod\project.zip"

我已经读到我需要为服务器安装 Web 部署项目,但我们没有在服务器上安装 Visual Studio,只有 TeamCity 8.x。

就个人而言,我想尝试让开发软件远离服务器,这样它就可以真正模拟客户端服务器的样子。

我还需要进行哪些其他设置,或者如果我必须将 Build & Deploy 拆分为两个单独的任务,那么第二个任务应该是什么?

4

1 回答 1

3

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

最终解决方案是将其添加到 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%作为网站的目标位置。

于 2013-11-19T03:15:53.167 回答