10

MSDeploy を使用して、TeamCity を使用して MVC プロジェクトをサーバーにデプロイしようとしています。次のコマンドを使用して、powershell のコンピューターでこれを行う場合:

msbuild.exe .\mvc.csproj /p:PublishProfile=DevServer /p:VisualStudioVersion=11.0
/p:DeployOnBuild=True /p:Password=MyPassword /p:AllowUntrustedCertificate=true

プロジェクトをビルドし、サーバー (DevServer パブリッシュ プロファイルで定義された情報) に完全にデプロイします。出力MSDeployPublishの最後にセクションが表示されます。このセクションには、次のようなテキストが表示Starting Web deployment task from source...され、その後、どのファイルが更新されたかを示す行が表示されます。

これを TeamCity で実行すると、MSBuild Build ステップを使用して、同じファイルで同じパラメータを (同じ作業ディレクトリから) 使用してプロジェクトをビルドしますが、公開しません。代わりに、ビルド プロセス (CoreCompile、_CopyFilesMarkedCopyLocal、GetCopyToOutputDirectoryItems、CopyFilesToOutputDirectory) からの通常の出力がありますが、実際には何も公開しません。

コンピューターから MSBuild を使用して動作するのと同じ方法でデプロイを公開するには、TeamCity のセットアップにどのような変更を加える必要がありますか?

(TeamCity 7.1、MSBuild 4.0、WebDeploy 3.0、Visual Studio 12、IIS 7。以前の質問に関連)

4

6 に答える 6

12

次のように構成された TeamCity MSBuild ステップで WebDeploy を実行します。

Build File Path:  Server.csproj

Command Line Parameters:
/p:Configuration=%configuration%
/p:DeployOnBuild=True 
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=https://%web.deploy.server%:8172/MsDeploy.axd
/p:DeployIisAppPath=%web.deploy.site% 
/p:AllowUntrustedCertificate=True
/p:Username=
/p:AuthType=NTLM

統合認証を使用します。スキームに合わせて必要に応じて変更します。これの価値は、すべてをゼロからビルドし、ビルド済みのパッケージに依存しないことだと思います。あなたが投稿した要点から、DB パブリッシングを行っていることに気付きました。そのために WebDeploy を使用していないため、そこでガイダンスを提供することはできません。お役に立てれば。

于 2013-01-10T17:56:02.830 に答える
10

MSBuild.exeを使用してzipにパッケージ化し、MSdeploy.exeを使用して別々の手順で展開します。

コマンドラインでpackage.zipファイルを展開するには:

"C:\Program Files\IIS\Microsoft Web Deploy V2\msdeploy.exe" -verb:sync 
     -source:package="C:\Build\MyAppName.Debug.zip" 
     -dest:auto,wmsvc=webservername,username=webdeploy,password=******* 
     -allowUntrusted=true

このコマンドも詳細に説明する価値があります。

-verb:sync:Webサイトをソースから宛先に同期させます

-source:package = "C:\ Build \ MyAppName.Debug.zip":ソースはMSBuildzipファイルパッケージです

-dest:auto、wmsvc = webservername:パッケージファイルの設定を使用してサーバーにデプロイします。ユーザーアカウントは、権限を持つOSレベルのアカウントです。ホスト名は指定されていますが、IIS Webサイト名(プロジェクトプロパティのMSBuildプロジェクトファイルで以前に指定されていた名前)は指定されていません。

構成に基づいてパラメーターを変更できます。個別の手順を使用すると、問題のデバッグが容易になるため、この方法が気に入っています。

TeamCityビルドステップとコマンドラインランナーを使用します。

更新: MSBuildを使用してZIPパッケージをビルドする方法の例が必要な場合は、次のようにしてみてください。

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
MyWebApp/MyWebApp/MyWebApp.csproj
/T:Package
/P:Configuration=Debug;PackageLocation="C:\Build\MyWebApp.Debug.zip"

これは、ローカルPCでもCIサーバーでも同じように機能するはずです。

于 2013-01-10T02:47:28.347 に答える
5

最終的に私のために働いた構成設定は次のとおりです。

/p:Configuration=CONFIG-NAME
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=http://SITE-URL/MsDeployAgentService
/p:username="USERNAME"
/p:password=PASSWORD
/p:AllowUntrustedCertificate=True 
/P:CreatePackageOnPublish=True 
/p:DeployIisAppPath=SITE-URL
/p:MSDeployPublishMethod=RemoteAgent
/p:IgnoreDeployManagedRuntimeVersion=True
于 2013-01-10T23:13:06.673 に答える
0

私はまったく同じ問題を抱えていました!私が使用したソリューションを次の場所に投稿しました: MsBuild が公開プロファイルを見つけられない

基本は次のとおりです。

  • ビルド サーバーに Azure SDK 1.8 をインストールする
  • /P:PublishProfileRootFolder 値を強制して、MSBuild が発行プロファイルを見つけられるようにします。
于 2014-01-28T05:01:05.857 に答える