トップ回答者
ClickOnceの発行場所にSubversionを使用する事は可能でしょうか?

質問
-
表題の件について、以下の様な手順で動作させました。
①C#のプロジェクトのプロパティ画面で
「発行フォルダの場所」に「C:\ver3\」
「インストールフォルダのURL」に「http://XX.XXX.XX.X/svn/CCOC_Reflesh_Release/ClickOnce/」
指定した後「今すぐ発行」ボタンを押下
②「C:\ver3\」に発行された、全てのファイル&フォルダを
SVN上の①の「インストールフォルダのURL」にインポート
③起動URL「http://XX.XXX.XX.X/svn/CCOC_Reflesh_Release/ClickOnce/setup.exe」を
クリックし実行する
④「このファイルを実行または保存しますか?」のダイアログが表示されるので「実行」ボタンを押下する
⑤「発行元を確認できませんでした。このソフトウェアを実行しますか?」ののダイアログが表示されるので「実行」ボタンを押下する
⑥「XXXXXをインストールしようとしてエラーが発生しました」のダイアログが表示される
⑦「install.log」を見ると、以下の様にエラー内容が出力されている(一部抜粋)
'.NET Framework 2.0 (x86)' RunCheck result: No Install Needed
Launching Application.
URLDownloadToCacheFile failed with HRESULT '-2147024891'
Error: 'http://XX.XXX.XX.X/svn/CCOC_Reflesh_Release/ClickOnce/DesmoClickOnce.application' をダウンロードしようとしてエラーが発生しました。何かオプションを付加すれば、
ClickOnceの発行場所にSubversionを使用する事は可能でしょうか?
ご存知の方がいらっしゃいましたら、ご教示して頂けると助かります。
回答
-
Subversion クライアントに何を使用されているかによりますが、一番基本のコマンドラインからなら、
app.application に application/x-ms-application を設定するには、
svn ps svn:mime-type application/x-ms-application app.application
としてから、commit かな。(配備された manifest, deploy 等の全ファイル設定してまわる必要があります)
継続して使われる場合は、クライアント側に拡張子を判断して自動設定するような設定を行っておくと便利かと思います。(TortoiseSVN なんかを使用されていたら、デプロイ用のフォルダに tsvn:autoprops を設定するだけですし、これらの拡張子を他のシステムでは使わないと思えば config ファイルに書いても構わないでしょう)
- 編集済み K. Takaoka 2011年10月6日 3:38
- 回答としてマーク 山本春海 2011年10月26日 5:48
-
TracLightning のバージョンも、apache での Subversion のホスティング設定の状況もなにもわからないので、何とも言えませんが 401 が返ってきているので指定されている URL に対して匿名でアクセスできないのではないですか?
たとえば、TracLightning 2.5.2 であれば、デフォルトで Subversion の公開 URL にはダイジェスト認証が設定されていて、ユーザ名とパスワードを入力しないとアクセスできないようになっています。このため、401 Not Authrized がエラーとして帰るのは当然の状態になります。
<追記>
TortoiseSVN を使用されている場合 config は触らなくても、デプロイ用のフォルダ (ClickOnce というところかな?) に対して tsvn:autoprops という属性を設定すれば、その配下にだけ autoprops を設定することができます。
config ファイルは、その PC にだけしか設定が適用されず、メンバー全員に設定をしてまわってもらわないといけませんが、tsvn:* 属性の場合はリポジトリに設定するので、メンバー全員に効果があって、ちょっと便利です。(逆に TortoiseSVN を使用しなければならないという制約がつきますが)
- 編集済み K. Takaoka 2011年10月7日 4:00
- 回答としてマーク 山本春海 2011年10月26日 5:48
すべての返信
-
> ③起動URL「http://XX.XXX.XX.X/svn/CCOC_Reflesh_Release/ClickOnce/setup.exe」をクリックし実行する
「http://XX.XXX.XX.X/svn/CCOC_Reflesh_Release/ClickOnce/<アプリ名>.application」をクリックし実行してみてはどうでしょうか。
また、本当に全部発行されているか確認されたほうが良いかと思います。除外ファイルに引っかかっているとか。 -
>「http://XX.XXX.XX.X/svn/CCOC_Reflesh_Release/ClickOnce/<アプリ名>.application」をクリックし実行してみてはどうでしょうか。
上記URLをクリックしますと、IE上にソースが表示されてしまいます(ですのでsetup.exeを叩いてみました)。
MIMEタイプの設定が足りないのでは?と思い
D:\TracLight\CollabNetSVN\httpd\conf\httpd.confの<IfModule mime_module>タグ内に
以下のMIMEタイプを追加した後、「TracLightning」のサービスを再起動したのですが、現象は変わりませんでした。
AddType application/x-ms-application .application
AddType application/x-ms-manifest .manifest
AddType application/octet-stream .deploy設定方法が間違ってるのでしょうか?
>また、本当に全部発行されているか確認されたほうが良いかと思います。除外ファイルに引っかかっているとか。
同じサーバーにIISをインストールし、「インストールフォルダのURL」を※のURLに変更→「今すぐ発行」ボタンを押下し
「C:\Inetpub\wwwroot\8113\ClickOnce」に配置し
http://XX.XXX.XX.X:8113/ClickOnce/DesmoClickOnce.applicationをクリックした時は
正常に動作しましたので、除外ファイルに引っかかったたりはしていないと思います。
※http://XX.XXX.XX.X:8113/ClickOnce/
以上、お手数お掛けしますが、宜しくお願いします。
-
Subversion クライアントに何を使用されているかによりますが、一番基本のコマンドラインからなら、
app.application に application/x-ms-application を設定するには、
svn ps svn:mime-type application/x-ms-application app.application
としてから、commit かな。(配備された manifest, deploy 等の全ファイル設定してまわる必要があります)
継続して使われる場合は、クライアント側に拡張子を判断して自動設定するような設定を行っておくと便利かと思います。(TortoiseSVN なんかを使用されていたら、デプロイ用のフォルダに tsvn:autoprops を設定するだけですし、これらの拡張子を他のシステムでは使わないと思えば config ファイルに書いても構わないでしょう)
- 編集済み K. Takaoka 2011年10月6日 3:38
- 回答としてマーク 山本春海 2011年10月26日 5:48
-
迅速な回答、ありがとうございます。
ご教示して頂いた以下の方法で一歩前進しました!
C:\Documents and Settings\<ユーザ名>\Application Data\Subversion\config
上記ファイル設定を以下の様にする(TortoiseSVN使用時)※クライアント側の設定
①以下の#を削除しauto-propsを有効にする
# enable-auto-props = yes②以下の文を[auto-props]の一番最後に追加する
*.application = svn:mime-type=application/x-ms-application
*.manifest = svn:mime-type=application/x-ms-manifest
*.deploy = svn:mime-type=application/octet-streamIE上にソースが表示されず「DesmoClickOnce.application」が実行できたのですが(ありがとうございます!)、
以下のエラーメッセージが表示されました。「アプリケーションを取得できません。認証エラーです。」のダイアログが表示され
「詳細」ボタンを押下しますと、以下の様なエラー内容が表示されましたエラーの概要
以下はエラーの概要です。これらのエラーの詳細はログに一覧表示されています。
* http://10.235.30.6/svn/CCOC_Reflesh_Release/ClickOnce/DesmoClickOnce.application のライセンス認証により例外が発生しました。 次の失敗メッセージが検出されました:
+ http://10.235.30.6/svn/CCOC_Reflesh_Release/ClickOnce/DesmoClickOnce.application のダウンロードに失敗しました。
+ リモート サーバーがエラーを返しました: (401) 許可されていません「DesmoClickOnce.application」実行時の認証と、ClickOnce対象のファイルダウンロードの認証は異なるのでしょうか?
質問続きで申し訳ございませんが、ご教示頂けると助かります。
-
TracLightning のバージョンも、apache での Subversion のホスティング設定の状況もなにもわからないので、何とも言えませんが 401 が返ってきているので指定されている URL に対して匿名でアクセスできないのではないですか?
たとえば、TracLightning 2.5.2 であれば、デフォルトで Subversion の公開 URL にはダイジェスト認証が設定されていて、ユーザ名とパスワードを入力しないとアクセスできないようになっています。このため、401 Not Authrized がエラーとして帰るのは当然の状態になります。
<追記>
TortoiseSVN を使用されている場合 config は触らなくても、デプロイ用のフォルダ (ClickOnce というところかな?) に対して tsvn:autoprops という属性を設定すれば、その配下にだけ autoprops を設定することができます。
config ファイルは、その PC にだけしか設定が適用されず、メンバー全員に設定をしてまわってもらわないといけませんが、tsvn:* 属性の場合はリポジトリに設定するので、メンバー全員に効果があって、ちょっと便利です。(逆に TortoiseSVN を使用しなければならないという制約がつきますが)
- 編集済み K. Takaoka 2011年10月7日 4:00
- 回答としてマーク 山本春海 2011年10月26日 5:48
-
こういうことがあるのでTracLightningはあまり快くおもっていません。
TracLightningはあくまでtrac / subversionを使う手段で、Webサーバーは別に立てるべきです。
もしくはApache / subversion / sqlite / python / tracを個別にコンパイル・インストールを行い、個々のモジュールについてきちんと設定方法を理解すべきです。それがなされていないから、Apacheを単独で使おうとしたときに設定方法がわからなくなるわけです。
# そもそもどのモジュールで動作させたいのかすら理解されていませんでしたし。今回のことで認証を外したようですが、それが逆にsubversionに対して誰でもコミットできるように解放されてしまっていないか心配です。
-
具体的にどのように設定されたのかわかりませんが、
- authz の設定にて、ClickOnce 用の階層のみ匿名アクセスを許可する
たとえば、
[CCOC_RefreshRelease:/ClickOnce]
* = rw
? = r
みたいなかんじです。(リポジトリやグループの構造がわからないので、適当に読み替えてください) - Satisfy を All から Any に変更する
おそらく、TracLightning のデフォルトは Satisfy All になっているので匿名アクセスができないかと思います。
というかたちで、認証は有効なまま ClickOnce 以下のみ認証を外すこともできます。詳しいことは、Apache のマニュアルなんかで。
> こういうことがあるので
~略~
> 個々のモジュールについてきちんと設定方法を理解すべきです。どちらかというと、個々の設定については理解されているか、自身で調べて解決されているように思いますので、困っておられる点はそこではないように思います。ClickOnce の配備エラーに対して、そのエラーの原因となる部分の特定をどのようにしていくか?その原因を解決する設定はどこにあるのか?といったところに難があったのかと思います。
- authz の設定にて、ClickOnce 用の階層のみ匿名アクセスを許可する
-
こんにちは、りーそる さん。
MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
有効な情報をいただいているようでしたので、他の方にも情報を有効活用いただくため、勝手ながら私のほうで回答としてマークさせていただきました。
アドバイスくださったみなさん、いつもありがとうございます。
いただいた情報の中で、解決に役立った投稿や、参考になる情報など有効な情報には回答としてマークすることをお願いしています。
今後、同じ問題でこのスレッドを参照される方にも、有効な情報を活用いただけるかと思いますので、次回からりーそる さんもご協力よろしくお願いいたしますね。
今後とも、MSDN フォーラムをよろしくお願いいたします。それでは。
日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海