1

最近、MVC プロジェクトを TeamCity にロードするタスクが与えられました。そうは言っても、ほとんどの「通常の」Webアプリケーションとは異なり、MVCアプリケーションをデプロイする必要があることを学びました。

すべてを考慮して、私は他のプロジェクトと同じようにプロジェクトのビルドタスクをビルドし、いくつかの問題を解決し、Google で ALOT を実行しました。

これが私が最終的に得たものです:

  • ランナーの種類: MSBuild
  • MSBuild バージョン: 4.0
  • MSBuild ツールバージョン: 4.0
  • 実行プラットフォーム: x64
  • ターゲット: ビルド;公開
  • コマンド ライン パラメーター: /p:Configuration=Staging;PackageLocation="C:\Sites\temp_publish\project\prod\project.zip"

サーバーにWeb Deployment Projectをインストールする必要があることを読みましたが、サーバーにVisual Studioがインストールされておらず、TeamCity 8.xのみがインストールされています。

個人的には、開発ソフトウェアをサーバーから切り離して、クライアント サーバーがどのようなものになるかを真にモックアップしたいと考えています。

他にどのような設定を行う必要がありますか、またはビルドとデプロイを 2 つの別々のタスクに分割する必要がある場合、2 番目のタスクは何にすべきですか?

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 に答える