2008-09-07 26 views
19

私はNAntとMSBuildを使用してAsp.net MVC Webアプリケーションをローカルに公開しようとしています。これが私のNAntターゲットに使用しているものです。MSBuildを使用してAsp.NET Webアプリケーションを公開するにはどうすればよいですか?

<target name="publish-artifacts-to-build"> 
    <msbuild project="my-solution.sln" target="Publish"> 
     <property name="Configuration" value="debug" /> 
     <property name="OutDir" value="builds\" /> 
     <arg line="/m:2 /tv:3.5" /> 
    </msbuild> 
</target> 

これはすべて応答です。

[msbuild]   Skipping unpublishable project. 

このようにコマンドラインからWebアプリケーションを公開することはできますか?

答えて

21

あなたが起動しようとしている目標「公開」は、一見奇妙なメッセージを得ている理由です...「ワンクリック」の展開のために、ではないのウェブサイトを公開するためです。 MSBuildタスクではなく、AspNetCompilerタスクを使用することをお勧めします。このタスクの詳細については、http://msdn2.microsoft.com/en-us/library/ms164291.aspxを参照してください。 "PublishDir"は、タスクのTargetPathプロパティに対応します。

Source

14

私は私のために素晴らしい作品は、そのような解決策を考え出した:

msbuild /t:ResolveReferences;_WPPCopyWebApplication /p:BuildingProject=true;OutDir=C:\Temp\buidl\ Test.csproj 

秘密のソースは_WPPCopyWebApplicationの対象です。

+0

_WPPCopyWebApplicationはどこですか?私はVS 2008とvbprojを持っています。 – Kiquenet

+1

私はそれが2008年に動作しないだろうと思い:(..このターゲットはここで定義されます。 "C:\ Program Files \ MSBuildの\マイクロソフト\ VisualStudioを\ V10.0 \ webアプリケーション\ Microsoft.WebApplication.targets" –

+1

この答えは働きましたMSBuildを呼び出すバッチファイルを使用しています。パブリッシュタスクはコードを展開していましたが、私の構成設定を解釈していませんでした(したがって、配置場所にweb.config、web.configuration.configがあり、 。それは私がResolveReferencesを使用する場合)XDT変換を行っていませんでした;。_WPPCopyWebApplication私のパブリッシュされたファイルは、すべての変換が行われていた1つのweb.configファイルで、その結果、予想通りの構成を解析されたレコードの –

関連する問題