11

Web Deployment Projectsでサポートされていないことを認識しましたVisual Studio 2012この記事を読んだ後、私は仕事に取り掛かろうとしPublish Profilesました。

Visual Studio Web Publish Updateをインストールした後、の新しい公開ダイアログを使用してWebサイトプロジェクトとWebアプリケーションプロジェクトを公開することができましたVisual Studio 2012

使用しているので、パラメータTFS 2010 Team Buildを介して公開プロファイルを使用しようとしました。MSBuildただし、次のステートメントは、Webアプリケーションプロジェクトを公開する場合にのみ機能します。

MSBuild.exe MyWebs.sln /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=DeployToDirectory.pubxml

Webサイトのプロジェクトを公開しようとしても、何も起こりません。私のWebサイトプロジェクトの公開プロファイルは、の新しい公開ダイアログでのみ機能しますが、Visual Studio 2012を呼び出すときは機能しませんMSBuild

何か案が?

4

2 に答える 2

6

私は自分の環境でこれと格闘して約 3 週間過ごしましたが、解決策があると思います。

問題は、ソリューションを渡すときに website.publishproj ファイルが実際にビルドされないことだと思います。私は次のことを行うことでこれを解決することができました:

  1. 新しい ASP.Net and Tools 2012.2 アップデートを使用していることを確認してください。ここからダウンロードしてください
  2. after.MyWebs.sln.targets という名前のソリューション ファイルの隣にファイルを作成します。このファイルは次のようになります。

    <!--?xml version="1.0" encoding="utf-8"?-->
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <Target Name="Deploy Website" AfterTargets="Build">
            <Message Text="Starting Website deployment" Importance="high">
            </Message>
            <MSBuild Projects="$(MSBuildProjectDirectory)\MyWebs\website.publishproj" 
            BuildInParallel="true" /> 
        </Target>
    </Project>
    

これが行うことは、MSBuild がソリューション ファイルのビルドを開始するときに、実際には拡張子metaprojを持つ MSBuild ファイルをメモリ内に作成することです。MSBuild でこのファイルをディスクに保存して検査できるようにする方法はいくつかありますが、Google で簡単に見つけることができます。ステップ 1 で作成されたファイルは、metaprojファイルに挿入され、ビルド後に実行されます。

これは、新しい発行プロファイルを取得して、古い Web 配置プロジェクトで取得していた出力を取得できる唯一の方法でした。

警告: TFS ビルドでこれを使用する場合、このシナリオでは、pubxml ファイルで指定した PublishUrl とは無関係に、ドロップ場所に _PublishedWebsites フォルダーを取得します。これは私が解決しようとしているものですが、これまでのところ、あまり喜びがありません.

于 2013-02-28T14:45:55.073 に答える
1

上記とまったく同じ問題がありました。次のキーを削除すると、自動ビルドが正常に機能するようになりました。

**<Content Include="website.publishproj" />**
于 2016-06-24T19:33:29.517 に答える