ClickOnceに関するメモ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
] [
Twitter
]
開始行:
→スマートクライアント
→.NET関連技術(プログラミング以外)
#contents
*関連Web [#zbb6fc7f]
-[[ClickOnce と Reg-Free COM によるアプリケーションの配置...
-[[Visual Studio 2005 技術情報 : 配置と配布>http://www.mi...
--[[ClickOnceとWindowsインストーラの使い分け>http://www.m...
-[[ClickOnceの基本動作を見てみよう>http://www.atmarkit.co...
-[[アプリ配布問題を解決するClickOnce>http://www.atmarkit....
-http://www.microsoft.com/japan/msdn/net/winforms/clickon...
-[[Click Onceの真実@IT:http://www.atmarkit.co.jp/fdotnet/...
*概要など [#q705b20c]
-[[Click Onceの生まれた理由:http://www.atmarkit.co.jp/fdo...
-ノータッチ・デプロイメントには以下の欠点がある
--ネットワークに接続されている必要がある。
--IEを通じて開く必要がある。(スタート メニューに追加され...
--制約が厳しい。
-これらを回避する手段として、[[Updater Application Block ...
-これを使用すると、ファイルの更新があった場合、自動でダウ...
-このように作られたアプリケーションは、クライアントにイン...
-ただし、今度は以下のような問題が発生する。
--ローカル アプリケーションとして実行されるため、セキュリ...
--Microsoftの公式サポートではない。
-これらの欠点を回避するために登場した技術がClickOnceであ...
-ClickOnceは、Visual Studio 2005 / .NET Framework 2.0に搭...
--オフラインでアプリケーションが使用できる。
--スタート メニューからアプリケーションの起動ができる。
--.NET Frameworkなど、必要なコンポーネントを同時にインス...
--Visual Studio 2005で簡単に配布設定ができる。
--更新で不具合が出た場合に、[プログラムの追加と削除]から...
--コード アクセス セキュリティが有効である。
--ファイルの遅延ダウンロードが可能。
*動作環境など [#f58b7aee]
-.NET Framework 2.0
-WebサーバはIISである必要はない(apacheを使う場合は注意点...
-dfsvc.exe…ClickOnceローダー
-インストールは''同一マシン上でも各ユーザ毎に行う必要''が...
-.NET Framework 自体の配布機能もあり
-[[FirefoxでClickOnceを実行するには?>http://www.atmarkit...
--https://addons.mozilla.org/ja/firefox/addon/1608
*ClickOnceアプリの作成方法 [#hf89ed62]
-まず普通にWindowsフォームアプリのプロジェクトを作成する
-プロジェクトのプロパティから「発行」タブを選び、必要な設...
-「発行ウィザード」もしくは「今すぐ発行」ボタンをクリック...
*用語 [#x274f040]
-appref-ms(アプリケーション参照)ファイル
--インストールしたアプリのショートカットのリンク先のファ...
--配置マニフェストの場所の情報などがある
--ClickOnceローダーに読み込まれる。
-ClickOnceキャッシュ領域=ClickOnceアプリケーションストア
--c:\Document and Settings\<user>\Apps\2.0\ ...
--ネットワークモードの部分信頼のアプリでは250MB、他は制限...
--ノータッチ・デプロイメントで使う.NETアセンブリ・ダウン...
-完全信頼(Full Trust)/部分信頼(Partial Trust)
--部分信頼アプリはAppLaunch.exeから起動される
-ダウンロード・グループ
--初回にダウンロードするファイルやアセンブリを減らす仕組み
-配置マニフェスト
--.applicationファイルのこと。
--publish.htmlのインストールボタンのリンク先
*配布設定時に必要なこと [#dc92bcee]
-配置オプション
--インストールモードの決定
--配置場所の選択。「Webからのインストール」とか
-IDEから各プロパティ設定
-IDEから「発行」
--配布用Webページ作成
**インストールモードの種類 [#ie438165]
-オンライン/オフラインモード
--ローカル環境へインストールするモード
--オフライン実行が許されている
-オンラインモード
--ネットワーク環境から起動するモード
**配置場所(配置オプション) [#k766c99b]
-setupの置き場所のこと
-配置場所の種類
--Web上 (http,https URL)
--ftpサイト上(ftp)
--ファイル共有(UNCパス)
--CD-ROMなどのローカル環境内(ディレクトリ・パス)
**「発行場所」について [#jdc7515e]
-セットアップの置き場所(配置場所)のことなのか?それとも...
-http経由でインストールする場合
--普通に「発行場所」をそのURLにすれば良い。
--そのサーバがIISでFrontPage extentionを入れてあれば自動...
**「インストールのURL」について [#o0443419]
-インストール先?
-「(発行先と違う場合)」とわざわざ書いてあるということは...
--→webサイトに発行した場合は''発行先=インストールのURL''...
-発行先とインストールURLが異なる場合とは、いったんローカ...
**フォルダ/ファイル構成 [#g74f6d08]
-exe.deploy ファイル…配布アプリケーションの実体
-publish.html…インストールや実行用のWebページ
-setup.exe…クライアントに必須コンポーネントをインストール...
**マニフェストファイル [#p417608f]
-XML形式
-IDEによって自動生成される(VS2005)
-<アセンブリ名>.exe.manifestファイル…アプリケーション・マ...
--配布するアプリケーションに関する情報
--セキュリティ要件
--依存関係
-<アセンブリ名>.applicationファイル…配置マニフェスト=デ...
--配布、更新に関する情報。
--バージョンによって管理
--インストールや配布の起動時に使う
--publish.htmlのインストールボタンのリンク先
--IDEによって自動的に作成される
-<アセンブリ名>_<バージョン>.application
--配置マニフェストのバックアップファイル
-Mage.exe/MageUI.exeで生成可能
*Webサーバ [#z81388e9]
-ClickOnceの関連するファイル以下のファイルのMIMEの設定を...
-このMIMEを判断してブラウザはClickOnceローダーを起動する...
拡張子 MIMEタイプ
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
-配置マニフェスト(.application)のMIMEタイプは application...
-このMIMEタイプをただしく処理できるブラウザはIEのみ(Firef...
*exeの実行される場所 [#pd1a335b]
-プログラムで実際に取得してみた結果
C:\Documents and Settings\<user name>\Local Settings\App...
-の下に「manifests」というフォルダがあり、その隣に
samp..tion_182d1562fda93bc7_0001.0000_9e7d711b7c5fa3f4
のようなフォルダがあった
-まとめると
C:\Documents and Settings\<user name>\
Local Settings\Apps\2.0\JB4DK3EL.XL5\C6P2GBBC.D1Y\
samp..tion_182d1562fda93bc7_0001.0000_9e7d711b7c5fa3f4\S...
(本来は改行しない)
-ユーザ領域の中だがフォルダ名などは不定と考えた方が良さそう
*クライアントに.NET Framework 2.0が入っていない場合 [#b02...
-インターネットにつながる環境の場合は自動的にインストール...
-ちゃんと日本語ランゲージパックも入る
-インターネットなしの環境の場合、ローカルに.NET Framework...
--どういうファイルを用意する必要があるのか?未調査
--設定の仕方については「必須コンポーネントの組み込み方」...
*アップデート処理 [#r93c7277]
-アップデート機能をAPIから呼び出しも可能(ClickOnce Deploy...
-更新チェックタイミングの種類
--起動時
--毎回実行中
--n日後の実行中
-変更のあったファイルだけがダウンロードされる
-オンデマンドでの部分的なアップデートの方法はヘルプの「デ...
**ロールバック機能 [#v77c06a8]
-1つ前のヴァージョンまでしか保存してないのでそれより前に...
-参考:[[ClickOnceアプリをロールバックさせるには>http://w...
-参考:[[Restore Application to Previous State Using Clic...
*発行ウィザード [#fa5d8f6a]
-VS2005のClickOnce発行支援機能
-プロジェクトのプロパティの「発行」タブ
*発行がエラーになるケース [#g6a662e3]
-現象 :
--プロジェクト プロパティ デザイナで [発行] タブの [今す...
-詳細 :
-- [今すぐ発行] ボタンまたは [発行ウィザード] ボタンを使...
"ファイル 'C:\..\setup.exe' を 'http://../setup.exe' に...
'setup.exe' を Web に追加できません。ファイル 'setup.exe...
"指定されたファイルが見つかりません"
または
"次のエラーにより、発行できませんでした: パス 'C:\..\pub...
見つかりませんでした。"
と表示されます。
-回避策 :
--1. 発行対象のプロジェクトをいったん閉じ、再度開きます。
--2. ソリューション エクスプローラでプロジェクトを右クリ...
--3. プロジェクト デザイナの [発行] タブに移動します。プ...
--4. ソリューション エクスプローラでプロジェクトを右クリ...
-メモ :
--''通常は、[今すぐ発行] ボタンや [発行ウィザード] ボタン...
--''ソリューション エクスプローラのコンテキスト メニュー...
-参考URL:http://download.microsoft.com/download/7/E/B/7EB...
*セキュリティ [#c78b3880]
-ClickOnceアプリケーションは初回起動時にインストールを行...
-これを回避するには以下の3パターンの方法がある。
+ベリサインなどの発行している証明書を使用して署名を行い。...
(ベリサインなど公的証明機関ではあらかじめクライアントの...
+Windows Certificate Serverまたはmakecert.exeを使って証...
+CAS(サンドボックスを実現する機能)の範囲を超えないよう...
-参考:[[ClickOnce 信頼された発行者の設定>http://www.micr...
-Authenticodeについてはヘルプの「ClickOnce の配置と Authe...
**マニフェストと証明書 [#ba00e429]
-マニフェストは作成する際に証明書(pfxファイル)を要求す...
-この証明書で署名をマニフェストに行う必要がある。(Visual...
-2つのマニフェストにはそれぞれバージョンが記載されている。
-(ちなみにこの2つのバージョンはモジュールのバージョンと...
*ローカルファイルに書き込みできる? [#x022d11f]
-出来る。(セキュリティポリシーに違反しなければ)
-ただしインストール先のフォルダ名は.NETによって決められる...
-よってexeのある場所にログを出力するなどという仕様はさけ...
-FileIOPermissionを使って云々という話もあり
-「分離ストレージ」なるものも使える。部分信頼でも使えるユ...
*ClickOnceデータディレクトリ [#rc2b657d]
-ClickOnce アプリケーションに含まれていて、"データ" ファ...
-もしかして上の方で書いた「ClickOnceキャッシュ領域」と同...
-データディレクトリのパス取得方法
AppDomain ad = AppDomain.CurrentDomain;
String path = ad.GetData("DataDirectory") as string;
もしくは
ApplicationDeployment ad = ApplicationDeployment.Current...
String path = ad.DataDirectory;
-アプリケーションのバージョン毎に別のディレクトリになる
-アプリをアンインストールするとこのディレクトリのデータも...
*ローカルにあるEXEを起動できる? [#x433c4d9]
-初回起動時に出るセキュリティ認証をOKした後は普通にできる...
*サーバ上にあるデータの参照 [#ldc2f476]
-自分自身がアクティベートされたサーバを知りたい場合は以下...
ApplicationDeployment ad = ApplicationDeployment.Current...
String hostname = ad.ActivationUri.DnsSafeHost;
-基本的には、インストール元のWebサーバにだけアクセス可
-制限がある場合はWebPermissionを要求
-System.Net.Client, HttpWebRequest など使う
-データがXMLならXmlDocument.Load
-XML Webサービス経由でのデータ取得も可
-System.DataによるSQL Server接続も可。ただし部分信頼では...
*起動時にパラメータを渡したい [#i7484226]
-ヘルプの「ClickOnce アプリケーションでクエリ文字列‏...
-マニフェストを取得するURLで以下のようなクエリ文字列を設...
http://servername/WindowsApp1.application?username=joeus...
-プロジェクトのプロパティの「配置」タブにある「発行オプシ...
-QueryパラメータをDictionaryに入れて返すサンプル(ヘルプ...
private Dictionary<string, string> GetQueryStringParame...
{
Dictionary<string, string> nameValueTable = new Dic...
if (ApplicationDeployment.IsNetworkDeployed)
{
string url = AppDomain.CurrentDomain.SetupInforma...
string queryString = (new Uri(url)).Query;
if( queryString.Length > 0)
{
if (queryString[0] == '?') //Query文字列の先頭...
{
queryString = queryString.Substring(1);
}
string[] nameValuePairs = queryString.Split('&');
foreach (string pair in nameValuePairs)
{
string[] vars = pair.Split('=');
if (!nameValueTable.ContainsKey(vars[0]))
{
nameValueTable.Add(vars[0], vars[1]);
}
}
}
}
return (nameValueTable);
}
-あんまりたくさんパラメータを渡すと限界にひっかかるので注意
*デバッグするには [#ye3608e5]
-基本的にはWindowsフォームアプリとして動かしてテストで良...
-参考:[[ClickOnceアプリケーションをデバッグするには>http...
-ブレークしたいところに↓を書いておくのが楽
#if DEBUG
Debugger.Break();
#endif
*必須コンポーネントの組み込み方 [#ld57aa2f]
-プロジェクトのプロパティから「発行」タブを開く
-「必須コンポーネント」ボタンをクリック
-DAOや.NET Framework、ランタイムライブラリ、Windowsインス...
-ここでコンポーネントのセットアップをどこから落とすか選択...
終了行:
→スマートクライアント
→.NET関連技術(プログラミング以外)
#contents
*関連Web [#zbb6fc7f]
-[[ClickOnce と Reg-Free COM によるアプリケーションの配置...
-[[Visual Studio 2005 技術情報 : 配置と配布>http://www.mi...
--[[ClickOnceとWindowsインストーラの使い分け>http://www.m...
-[[ClickOnceの基本動作を見てみよう>http://www.atmarkit.co...
-[[アプリ配布問題を解決するClickOnce>http://www.atmarkit....
-http://www.microsoft.com/japan/msdn/net/winforms/clickon...
-[[Click Onceの真実@IT:http://www.atmarkit.co.jp/fdotnet/...
*概要など [#q705b20c]
-[[Click Onceの生まれた理由:http://www.atmarkit.co.jp/fdo...
-ノータッチ・デプロイメントには以下の欠点がある
--ネットワークに接続されている必要がある。
--IEを通じて開く必要がある。(スタート メニューに追加され...
--制約が厳しい。
-これらを回避する手段として、[[Updater Application Block ...
-これを使用すると、ファイルの更新があった場合、自動でダウ...
-このように作られたアプリケーションは、クライアントにイン...
-ただし、今度は以下のような問題が発生する。
--ローカル アプリケーションとして実行されるため、セキュリ...
--Microsoftの公式サポートではない。
-これらの欠点を回避するために登場した技術がClickOnceであ...
-ClickOnceは、Visual Studio 2005 / .NET Framework 2.0に搭...
--オフラインでアプリケーションが使用できる。
--スタート メニューからアプリケーションの起動ができる。
--.NET Frameworkなど、必要なコンポーネントを同時にインス...
--Visual Studio 2005で簡単に配布設定ができる。
--更新で不具合が出た場合に、[プログラムの追加と削除]から...
--コード アクセス セキュリティが有効である。
--ファイルの遅延ダウンロードが可能。
*動作環境など [#f58b7aee]
-.NET Framework 2.0
-WebサーバはIISである必要はない(apacheを使う場合は注意点...
-dfsvc.exe…ClickOnceローダー
-インストールは''同一マシン上でも各ユーザ毎に行う必要''が...
-.NET Framework 自体の配布機能もあり
-[[FirefoxでClickOnceを実行するには?>http://www.atmarkit...
--https://addons.mozilla.org/ja/firefox/addon/1608
*ClickOnceアプリの作成方法 [#hf89ed62]
-まず普通にWindowsフォームアプリのプロジェクトを作成する
-プロジェクトのプロパティから「発行」タブを選び、必要な設...
-「発行ウィザード」もしくは「今すぐ発行」ボタンをクリック...
*用語 [#x274f040]
-appref-ms(アプリケーション参照)ファイル
--インストールしたアプリのショートカットのリンク先のファ...
--配置マニフェストの場所の情報などがある
--ClickOnceローダーに読み込まれる。
-ClickOnceキャッシュ領域=ClickOnceアプリケーションストア
--c:\Document and Settings\<user>\Apps\2.0\ ...
--ネットワークモードの部分信頼のアプリでは250MB、他は制限...
--ノータッチ・デプロイメントで使う.NETアセンブリ・ダウン...
-完全信頼(Full Trust)/部分信頼(Partial Trust)
--部分信頼アプリはAppLaunch.exeから起動される
-ダウンロード・グループ
--初回にダウンロードするファイルやアセンブリを減らす仕組み
-配置マニフェスト
--.applicationファイルのこと。
--publish.htmlのインストールボタンのリンク先
*配布設定時に必要なこと [#dc92bcee]
-配置オプション
--インストールモードの決定
--配置場所の選択。「Webからのインストール」とか
-IDEから各プロパティ設定
-IDEから「発行」
--配布用Webページ作成
**インストールモードの種類 [#ie438165]
-オンライン/オフラインモード
--ローカル環境へインストールするモード
--オフライン実行が許されている
-オンラインモード
--ネットワーク環境から起動するモード
**配置場所(配置オプション) [#k766c99b]
-setupの置き場所のこと
-配置場所の種類
--Web上 (http,https URL)
--ftpサイト上(ftp)
--ファイル共有(UNCパス)
--CD-ROMなどのローカル環境内(ディレクトリ・パス)
**「発行場所」について [#jdc7515e]
-セットアップの置き場所(配置場所)のことなのか?それとも...
-http経由でインストールする場合
--普通に「発行場所」をそのURLにすれば良い。
--そのサーバがIISでFrontPage extentionを入れてあれば自動...
**「インストールのURL」について [#o0443419]
-インストール先?
-「(発行先と違う場合)」とわざわざ書いてあるということは...
--→webサイトに発行した場合は''発行先=インストールのURL''...
-発行先とインストールURLが異なる場合とは、いったんローカ...
**フォルダ/ファイル構成 [#g74f6d08]
-exe.deploy ファイル…配布アプリケーションの実体
-publish.html…インストールや実行用のWebページ
-setup.exe…クライアントに必須コンポーネントをインストール...
**マニフェストファイル [#p417608f]
-XML形式
-IDEによって自動生成される(VS2005)
-<アセンブリ名>.exe.manifestファイル…アプリケーション・マ...
--配布するアプリケーションに関する情報
--セキュリティ要件
--依存関係
-<アセンブリ名>.applicationファイル…配置マニフェスト=デ...
--配布、更新に関する情報。
--バージョンによって管理
--インストールや配布の起動時に使う
--publish.htmlのインストールボタンのリンク先
--IDEによって自動的に作成される
-<アセンブリ名>_<バージョン>.application
--配置マニフェストのバックアップファイル
-Mage.exe/MageUI.exeで生成可能
*Webサーバ [#z81388e9]
-ClickOnceの関連するファイル以下のファイルのMIMEの設定を...
-このMIMEを判断してブラウザはClickOnceローダーを起動する...
拡張子 MIMEタイプ
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
-配置マニフェスト(.application)のMIMEタイプは application...
-このMIMEタイプをただしく処理できるブラウザはIEのみ(Firef...
*exeの実行される場所 [#pd1a335b]
-プログラムで実際に取得してみた結果
C:\Documents and Settings\<user name>\Local Settings\App...
-の下に「manifests」というフォルダがあり、その隣に
samp..tion_182d1562fda93bc7_0001.0000_9e7d711b7c5fa3f4
のようなフォルダがあった
-まとめると
C:\Documents and Settings\<user name>\
Local Settings\Apps\2.0\JB4DK3EL.XL5\C6P2GBBC.D1Y\
samp..tion_182d1562fda93bc7_0001.0000_9e7d711b7c5fa3f4\S...
(本来は改行しない)
-ユーザ領域の中だがフォルダ名などは不定と考えた方が良さそう
*クライアントに.NET Framework 2.0が入っていない場合 [#b02...
-インターネットにつながる環境の場合は自動的にインストール...
-ちゃんと日本語ランゲージパックも入る
-インターネットなしの環境の場合、ローカルに.NET Framework...
--どういうファイルを用意する必要があるのか?未調査
--設定の仕方については「必須コンポーネントの組み込み方」...
*アップデート処理 [#r93c7277]
-アップデート機能をAPIから呼び出しも可能(ClickOnce Deploy...
-更新チェックタイミングの種類
--起動時
--毎回実行中
--n日後の実行中
-変更のあったファイルだけがダウンロードされる
-オンデマンドでの部分的なアップデートの方法はヘルプの「デ...
**ロールバック機能 [#v77c06a8]
-1つ前のヴァージョンまでしか保存してないのでそれより前に...
-参考:[[ClickOnceアプリをロールバックさせるには>http://w...
-参考:[[Restore Application to Previous State Using Clic...
*発行ウィザード [#fa5d8f6a]
-VS2005のClickOnce発行支援機能
-プロジェクトのプロパティの「発行」タブ
*発行がエラーになるケース [#g6a662e3]
-現象 :
--プロジェクト プロパティ デザイナで [発行] タブの [今す...
-詳細 :
-- [今すぐ発行] ボタンまたは [発行ウィザード] ボタンを使...
"ファイル 'C:\..\setup.exe' を 'http://../setup.exe' に...
'setup.exe' を Web に追加できません。ファイル 'setup.exe...
"指定されたファイルが見つかりません"
または
"次のエラーにより、発行できませんでした: パス 'C:\..\pub...
見つかりませんでした。"
と表示されます。
-回避策 :
--1. 発行対象のプロジェクトをいったん閉じ、再度開きます。
--2. ソリューション エクスプローラでプロジェクトを右クリ...
--3. プロジェクト デザイナの [発行] タブに移動します。プ...
--4. ソリューション エクスプローラでプロジェクトを右クリ...
-メモ :
--''通常は、[今すぐ発行] ボタンや [発行ウィザード] ボタン...
--''ソリューション エクスプローラのコンテキスト メニュー...
-参考URL:http://download.microsoft.com/download/7/E/B/7EB...
*セキュリティ [#c78b3880]
-ClickOnceアプリケーションは初回起動時にインストールを行...
-これを回避するには以下の3パターンの方法がある。
+ベリサインなどの発行している証明書を使用して署名を行い。...
(ベリサインなど公的証明機関ではあらかじめクライアントの...
+Windows Certificate Serverまたはmakecert.exeを使って証...
+CAS(サンドボックスを実現する機能)の範囲を超えないよう...
-参考:[[ClickOnce 信頼された発行者の設定>http://www.micr...
-Authenticodeについてはヘルプの「ClickOnce の配置と Authe...
**マニフェストと証明書 [#ba00e429]
-マニフェストは作成する際に証明書(pfxファイル)を要求す...
-この証明書で署名をマニフェストに行う必要がある。(Visual...
-2つのマニフェストにはそれぞれバージョンが記載されている。
-(ちなみにこの2つのバージョンはモジュールのバージョンと...
*ローカルファイルに書き込みできる? [#x022d11f]
-出来る。(セキュリティポリシーに違反しなければ)
-ただしインストール先のフォルダ名は.NETによって決められる...
-よってexeのある場所にログを出力するなどという仕様はさけ...
-FileIOPermissionを使って云々という話もあり
-「分離ストレージ」なるものも使える。部分信頼でも使えるユ...
*ClickOnceデータディレクトリ [#rc2b657d]
-ClickOnce アプリケーションに含まれていて、"データ" ファ...
-もしかして上の方で書いた「ClickOnceキャッシュ領域」と同...
-データディレクトリのパス取得方法
AppDomain ad = AppDomain.CurrentDomain;
String path = ad.GetData("DataDirectory") as string;
もしくは
ApplicationDeployment ad = ApplicationDeployment.Current...
String path = ad.DataDirectory;
-アプリケーションのバージョン毎に別のディレクトリになる
-アプリをアンインストールするとこのディレクトリのデータも...
*ローカルにあるEXEを起動できる? [#x433c4d9]
-初回起動時に出るセキュリティ認証をOKした後は普通にできる...
*サーバ上にあるデータの参照 [#ldc2f476]
-自分自身がアクティベートされたサーバを知りたい場合は以下...
ApplicationDeployment ad = ApplicationDeployment.Current...
String hostname = ad.ActivationUri.DnsSafeHost;
-基本的には、インストール元のWebサーバにだけアクセス可
-制限がある場合はWebPermissionを要求
-System.Net.Client, HttpWebRequest など使う
-データがXMLならXmlDocument.Load
-XML Webサービス経由でのデータ取得も可
-System.DataによるSQL Server接続も可。ただし部分信頼では...
*起動時にパラメータを渡したい [#i7484226]
-ヘルプの「ClickOnce アプリケーションでクエリ文字列‏...
-マニフェストを取得するURLで以下のようなクエリ文字列を設...
http://servername/WindowsApp1.application?username=joeus...
-プロジェクトのプロパティの「配置」タブにある「発行オプシ...
-QueryパラメータをDictionaryに入れて返すサンプル(ヘルプ...
private Dictionary<string, string> GetQueryStringParame...
{
Dictionary<string, string> nameValueTable = new Dic...
if (ApplicationDeployment.IsNetworkDeployed)
{
string url = AppDomain.CurrentDomain.SetupInforma...
string queryString = (new Uri(url)).Query;
if( queryString.Length > 0)
{
if (queryString[0] == '?') //Query文字列の先頭...
{
queryString = queryString.Substring(1);
}
string[] nameValuePairs = queryString.Split('&');
foreach (string pair in nameValuePairs)
{
string[] vars = pair.Split('=');
if (!nameValueTable.ContainsKey(vars[0]))
{
nameValueTable.Add(vars[0], vars[1]);
}
}
}
}
return (nameValueTable);
}
-あんまりたくさんパラメータを渡すと限界にひっかかるので注意
*デバッグするには [#ye3608e5]
-基本的にはWindowsフォームアプリとして動かしてテストで良...
-参考:[[ClickOnceアプリケーションをデバッグするには>http...
-ブレークしたいところに↓を書いておくのが楽
#if DEBUG
Debugger.Break();
#endif
*必須コンポーネントの組み込み方 [#ld57aa2f]
-プロジェクトのプロパティから「発行」タブを開く
-「必須コンポーネント」ボタンをクリック
-DAOや.NET Framework、ランタイムライブラリ、Windowsインス...
-ここでコンポーネントのセットアップをどこから落とすか選択...
ページ名: