ClickOnce アプリケーションのコマンド ラインからのビルド

Visual Studio では、統合開発環境 (IDE: Integrated Development Environment) で作成されたプロジェクトをコマンド ラインでビルドすることもできます。 実際、Visual Studio で作成したプロジェクトを、.NET Framework しかインストールされていない別のコンピューターで再度ビルドできます。 これにより、たとえば中央のビルド ラボで、またはプロジェクト自体のビルドの範囲を超えた高度なスクリプト技術によって、自動化されたプロセスを使用してビルドを再生成できます。

MSBuild による ClickOnce アプリケーションの配置の再生成

コマンド ラインで msbuild /target:publish を起動すると、このコマンドは MSBuild システムに対して、プロジェクトをビルドして publish フォルダー内に ClickOnce アプリケーションを作成するように指示します。 これは、IDE で [発行] コマンドを選択するのと同じです。

このコマンドにより、Visual Studio のコマンド プロンプト環境のパス上にある msbuild.exe が実行されます。

"target" (ターゲット) は、MSBuild にコマンドの処理方法を示すインジケーターです。 主なターゲットは "build" ターゲットと "publish" ターゲットです。 build ターゲットは、IDE で [ビルド] コマンドを選択する (または F5 キーを押す) のと同じです。 単にプロジェクトのビルドを行う場合は、「msbuild」と入力します。 このコマンドが機能するのは、build ターゲットが Visual Studio で生成されるすべてのプロジェクトの既定のターゲットであるためです。 つまり、ビルド ターゲットを明示的に指定する必要はありません。 したがって、「msbuild」と入力することは、「msbuild /target:build」と入力するのと同じ操作になります。

/target:publish コマンドは、publish ターゲットを呼び出すように MSBuild に指示します。 publish ターゲットは build ターゲットに依存します。 つまり、発行操作はビルド操作のスーパーセットです。 たとえば、Visual Basic のソース ファイルや C# のソース ファイルのいずれかを変更した場合、対応するアセンブリが発行操作によって自動的にビルドし直されます。

ClickOnce のマニフェストを作成する Mage.exe コマンド ライン ツールを使用して完全な ClickOnce の配置を生成する方法については、「チュートリアル : ClickOnce アプリケーションを手動で配置する」を参照してください。

MSBuild による基本的な ClickOnce アプリケーションの作成とビルド

ClickOnce プロジェクトを作成して発行するには

  1. [ファイル] メニューの [新しいプロジェクト] をクリックします。 [新しいプロジェクト] ダイアログ ボックスが表示されます。

  2. [Windows アプリケーション] をクリックし、「CmdLineDemo」という名前を付けます。

  3. [ビルド] メニューの [発行] をクリックします。

    この手順により、ClickOnce アプリケーションの配置を生成するためのプロジェクトが正しく設定されます。

    発行ウィザードが表示されます。

  4. 発行ウィザードで、[完了] をクリックします。

    Publish.htm という名前の既定の Web ページが生成され、表示されます。

  5. プロジェクトを保存し、プロジェクトが格納されたフォルダーの場所をメモします。

前の手順により、ClickOnce プロジェクトが作成され、初めて発行されました。 次に、IDE の外からビルドを再生成します。

コマンド ラインでビルドを再生成するには

  1. Visual Studio を終了します。

  2. Windows の [スタート] メニューをクリックし、[すべてのプログラム] をポイントします。次に、[Microsoft Visual Studio] をポイントし、[Visual Studio Tools] をポイントし、[Visual Studio コマンド プロンプト] をクリックします。 これにより、現在のユーザーのルート フォルダー内でコマンド プロンプトが開きます。

  3. [Visual Studio コマンド プロンプト] で、現在のディレクトリを先ほどビルドしたプロジェクトの場所に変更します。 たとえば、「chdir My Documents\Visual Studio\Projects\CmdLineDemo」のように入力します。

  4. 「ClickOnce プロジェクトを作成して発行するには」で生成された既存のファイルを削除するために、「rmdir /s publish」と入力します。

    この手順は省略可能ですが、これにより、新たなファイルがコマンド ラインからのビルドで生成されたファイルだけになります。

  5. 「msbuild /target:publish」と入力します。

前の手順により、プロジェクトの Publish という名前のサブフォルダー内に、ClickOnce アプリケーションの配置が生成されます。 CmdLineDemo.application は、ClickOnce の配置マニフェストです。 CmdLineDemo_1.0.0.0 フォルダーには、CmdLineDemo.exe ファイルと、ClickOnce アプリケーション マニフェストである CmdLineDemo.exe.manifest ファイルが含まれています。 Setup.exe はブートストラップであり、既定では .NET Framework をインストールするように構成されます。 DotNetFX フォルダーには、.NET Framework の再頒布パッケージが含まれています。 これが、Web、UNC、または CD か DVD を介してアプリケーションを配置するために必要なすべてのファイルのセットです。

発行プロパティ

上記の手順でアプリケーションを発行するときに、発行ウィザードによって次のプロパティがプロジェクト ファイルに挿入されます。 これらのプロパティは、ClickOnce アプリケーションの生成方法に直接影響します。

CmdLineDemo.vbproj または CmdLineDemo.csproj は、次のようになっています。

<AssemblyOriginatorKeyFile>WindowsApplication3.snk</AssemblyOriginatorKeyFile>
<GenerateManifests>true</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<PublisherName>Microsoft</PublisherName>
<ProductName>CmdLineDemo</ProductName>
<PublishUrl>https://localhost/CmdLineDemo</PublishUrl>
<Install>true</Install>
<ApplicationVersion>1.0.0.*</ApplicationVersion>
<ApplicationRevision>1</ApplicationRevision>
<UpdateEnabled>true</UpdateEnabled>
<UpdateRequired>false</UpdateRequired>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdateUrlEnabled>false</UpdateUrlEnabled>
<IsWebBootstrapper>true</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>

これらのプロパティはいずれも、プロジェクト ファイル自体を変更することなくコマンド ラインでオーバーライドできます。 たとえば、次のように設定すると、ブートストラップを含まない ClickOnce アプリケーションの配置をビルドできます。

msbuild /target:publish /property:BootstrapperEnabled=false

発行プロパティは、Visual Studio のプロジェクト デザイナー[発行][セキュリティ]、および [署名] の各プロパティ ページで制御されます。 発行プロパティの説明と、アプリケーション デザイナーのさまざまなプロパティ ページで各プロパティを設定する方法を次に示します。

  • AssemblyOriginatorKeyFile は、ClickOnce アプリケーション マニフェストへの署名に使用するキー ファイルを決定します。 これと同じキーを、アセンブリへの厳密な名前の割り当てに使用することもできます。 このプロパティは、プロジェクト デザイナー[署名] ページで設定します。

次のプロパティは、[セキュリティ] ページで設定します。

  • [ClickOnce セキュリティ設定を有効にする] は、ClickOnce マニフェストを生成するかどうかを決定します。 プロジェクトが最初に作成されたときには、ClickOnce のマニフェスト生成は既定で無効になっています。 最初に発行を行うときに、ウィザードでこのフラグが自動的にオンに設定されます。

  • [ターゲット ゾーン] は、ClickOnce アプリケーション マニフェストに与える信頼のレベルを決定します。 設定できる値は、"Internet"、"LocalIntranet"、および "Custom" です。 Internet または LocalIntranet に設定した場合、既定のアクセス許可セットが ClickOnce アプリケーション マニフェストに与えられます。 LocalIntranet は既定値であり、基本的には完全な信頼を意味します。 Custom に設定した場合は、基本のアプリケーション マニフェスト ファイルに明示的に指定されたアクセス許可だけが ClickOnce アプリケーション マニフェストに与えられます。 app.manifest ファイルは、信頼情報の定義だけを含む部分的なマニフェスト ファイルです。 これは隠しファイルであり、[セキュリティ] ページでアクセス許可を設定すると、自動的にプロジェクトに追加されます。

次のプロパティは、[発行] ページで設定します。

  • PublishUrl は、IDE でのアプリケーションの発行先の場所です。 これは、InstallUrl プロパティと UpdateUrl プロパティがいずれも指定されていない場合に、ClickOnce アプリケーション マニフェストに挿入されます。

  • ApplicationVersion は、ClickOnce アプリケーションのバージョンを指定します。 これは 4 桁のバージョン番号です。 最後の桁が "*" の場合は、ApplicationRevision の代わりに、ビルド時にマニフェストに挿入された値が使用されます。

  • ApplicationRevision はリビジョンを指定します。 これは、IDE で発行を行うたびにインクリメントされる整数です。 コマンド ラインで実行されるビルドの場合、この値は自動的にインクリメントされません。

  • Install は、アプリケーションがインストールされるアプリケーションか、または Web から実行されるアプリケーションであるかを決定します。

  • InstallUrl (上記のコードには示されていない) は、アプリケーションのインストール元の場所です。 指定した場合、IsWebBootstrapper プロパティが有効になっているときは、この値が setup.exe ブートストラップに書き込まれます。 また、UpdateUrl が指定されていないときは、アプリケーション マニフェストにもこの値が挿入されます。

  • SupportUrl (上記のコードには示されていない) は、[プログラムの追加と削除] ダイアログ ボックスでインストール済みアプリケーションにリンクされる場所です。

次のプロパティは、[発行] ページからアクセスする [アプリケーションの更新] ダイアログ ボックスで設定します。

  • UpdateEnabled は、アプリケーションが更新を確認するかどうかを指定します。

  • UpdateMode は、フォアグラウンド更新かバックグラウンド更新のいずれかを指定します。

  • UpdateInterval は、アプリケーションが更新を確認する頻度を指定します。

  • UpdateIntervalUnits は、UpdateInterval の単位を時間、日、週のいずれかに指定します。

  • UpdateUrl (上記のコードには示されていない) は、アプリケーションが更新を受け取る場所です。 指定されている場合、この値がアプリケーション マニフェストに挿入されます。

  • 次のプロパティは、[発行] ページからアクセスする [発行オプション] ダイアログ ボックスで設定します。

  • PublisherName は、アプリケーションのインストール時または実行時にプロンプトに表示される発行者の名前を指定します。 インストールされるアプリケーションの場合は、この値が [スタート] メニューに表示されるフォルダー名の指定にも使用されます。

  • ProductName は、アプリケーションのインストール時または実行時にプロンプトに表示される製品名を指定します。 インストールされるアプリケーションの場合は、この値が [スタート] メニューに表示されるショートカットの名前の指定にも使用されます。

  • 次のプロパティは、[発行] ページからアクセスする [必須コンポーネント] ダイアログ ボックスで設定します。

  • BootstrapperEnabled は、setup.exe ブートストラップを生成するかどうかを決定します。

  • IsWebBootstrapper は、setup.exe ブートストラップが Web を介して機能するか、またはディスク ベースのモードで機能するかを決定します。

InstallURL、SupportUrl、PublishURL、および UpdateURL

次の表に、ClickOnce 配置の 4 つの URL オプションを示します。

URL オプション

説明

PublishURL

ClickOnce アプリケーションを Web サイトに発行する場合に必要です。

InstallURL

省略可能。 インストール サイトが PublishURL とは異なる場合、この URL オプションを設定します。 たとえば、PublishURL を FTP パスに設定し、InstallURL を Web の URL に設定することもできます。

SupportURL

省略可能。 サポート サイトが PublishURL とは異なる場合、この URL オプションを設定します。 たとえば、SupportURL を会社のカスタマー サポート Web サイトに設定することができます。

UpdateURL

省略可能。 更新ファイルの場所が InstallURL とは異なる場合、この URL オプションを設定します。 たとえば、PublishURL を FTP パスに設定し、UpdateURL を Web の URL に設定することもできます。

参照

処理手順

チュートリアル : ClickOnce アプリケーションを手動で配置する

参照

GenerateBootstrapper

GenerateApplicationManifest

GenerateDeploymentManifest

概念

ClickOnce のセキュリティと配置