0

TFS ビルドが成功した後、デプロイを開始しようとしています。MSBuild Arguments に次のパラメーターを指定しています

/P:AllowUntrustedCertificate=True /p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=WMSVC
/p:MSDeployServiceUrl= https://server.test.com
/p:DeployIisAppPath=" Web サイト" /p:UserName=ユーザー名 /p:Password=パスワード

ビルドはスムーズに実行されますが、デプロイは実際には行われません。ドロップ フォルダーに、_PublishedWebsites という名前の一時フォルダーが追加されますが、そのフォルダーの内容は Web サーバーにプッシュされません。

VS 2012 と TFS 2012 だけでなく、ビルド サーバーに WebDeploy 3.0 をインストールしています。WebDeploy を使用して、VS 2012 経由で問題なくローカル インスタンスにデプロイを送信できます。何が欠けているのかわかりませんが、デプロイをトリガーするには何か小さなものでなければなりません。

4

1 に答える 1

1

Bin は正常にビルドおよび展開されますが、Drop ツリーに Web サイトが作成されないという問題がありました。数日間いろいろ試した結果、最終的に解決策としてプロジェクトファイルの変更にたどり着きました。

デプロイする Web サイトは、もともと VS2008 の WebSite プロジェクトであり、VS2012 で後で WebApplication プロジェクトに変換されました。csproj ファイル (および/または vbproj ファイル) で、次のセクションを見つけました。

<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

これを、新しく作成した MVC アプリから収集した次のものに置き換えました。

  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
  <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
  </Target>

これにより、変数が定義され、ビルド ターゲットが設定され、自動ビルドがそれらを取得できるようになります。WebApplication 変換プロセスがこれらを見逃した理由がわかりません。プロジェクトが VB でない場合は、'VisualBasic' を 'CSharp' に置き換えてください。また、ビルド サーバーの構成によっては、v11.0 の代わりに v10.0 を使用する必要がある場合があります。

于 2014-04-17T23:16:31.943 に答える