2009-05-27 10 views
3

現在、Visual Studioを使用してClickOnceデプロイメントパッケージを構築していますが、使用しているWebサーバーが "Application Files"という名前を変更しますスペースをサポートしていません。ClickOnceデプロイメントの "Application Files"フォルダの名前を自動的に変更する方法

.applicationファイルに直接アクセスすると、指し示されているパスを変更でき、フォルダの名前を手動で変更することもできます。

MageUIやその他のユーティリティを使用していても、誰かがこれを自動化する方法を知っていますか?私たちのために変更を加えるバッチスクリプトを一緒に配置するのは魅力的です。証明書について心配する必要はないので、デプロイメントは署名されていないファイルも使用しています(内部アプリケーションのみです)

+0

どうやってこれを稼働させましたか?フォルダの名前を変更すると(App Engineとスペースのバグがあります)、次のエラーが表示されます。 +マニフェストのXML署名が無効です。 +オブジェクトの電子署名が検証されませんでした。 –

+0

App Engineを使用しているかどうかはわかりませんが(スペースをサポートしていないと言われています)、ハンドラのURLをURLエンコードすることで、私の宇宙で作業しています: - url:/ app/Application%20Files static_dir:app/Application Files –

+0

マニフェストファイルのシグネチャ生成を無効にする必要があります。 AppEngineを使用していて、ハンドラURLを追加するのは正しいと思います。 http://code.google.com/p/googleappengine/issues/detail?id=2525に詳細があります –

答えて

2

誰もこの回答を知らないように私はそれを行う方法を見つけました私自身。私はpowershellスクリプトを作成しました。これは、符号なしマニフェストでのみ機能することに注意してください。

gci -Recurse -include *.application | ForEach-Object { [System.IO.File]::WriteAllLines($_.FullName, [System.IO.File]::ReadAllText($_.FullName).Replace("Application Files", "ApplicationFiles")) } 
gci -recurse | Where {$_.psIsContainer -eq $true} | Where {$_.Name -eq "Application Files"} | ForEach-Object { $_.MoveTo($_.FullName.Replace("Application Files", "ApplicationFiles")) } 

マイPowerShellは、それを行うためのより良い方法があるかもしれないので、素晴らしいではありませんが、それは私が

0

まず思い付いた何だった、手動でこれを試してみてください。

アプリケーションをフォルダに公開します(公開場所はC:\ publish、インストールURLはhttp://myserver/myapp/などのように正しく設定します)。

次に、Application Filesの名前をC:\ publishのApplicationFilesに変更します。

C:\ publish \ ApplicationFiles \ yourapp_a_b_c_d \フォルダーに移動し、yourapp.applicationを削除します。 (信頼してください、そうしないと、ファイルを再追加するとmageuiがうまくいきません)。

MageUIを実行します(実行しているVSのバージョンに応じて、c:¥program files¥microsoft sdks¥windows¥v7.0a¥binまたはv6.0a¥binにあります)。

MageUIで、[開く]をクリックし、c:\ publish \ ApplicationFiles \ yourapp_a_b_c_d \ yourapp.exe.manifestを探して開きます(ここで、a_b_c_dは自分のバージョン、yourappはアプリケーション名です)。

あなたは名前とものが表示されます。 [ファイル]をクリックします。 「配置拡張を追加するには...」をチェックしてから「Populate」をクリックします(ただし、VSで変更しない限り、すべての拡張子が必要です)。これにより、フォルダ内のすべてのファイルがアプリケーションマニフェストに追加されます。/

アプリケーションマニフェストを保存して署名します。

その後、もう一度開いてc:\ publish \ yourapp.applicationを開きます。

「アプリケーションリファレンス」をクリックします。右側で、[マニフェストの選択]をクリックします。今編集したもの(C:\ publish \ ApplicationFiles \ yourapp_a_b_c_d \ yourapp.exe.manifest)を参照してください。これにより、展開マニフェストが更新され、適切なアプリケーションマニフェスト内のファイルの一覧が検索されます。展開マニフェスト(yourapp.application)を保存して署名します。

フォルダをWebサーバーにコピーすると、動作するはずです。

これでうまくいけば、mageuiコマンドをMageコマンドに置き換えて、簡単に新しいフォルダにファイルをコピーするか、 "Application Files"という名前を "ApplicationFiles"に変更することができます。

必要に応じて、私はあなたのためにMageコマンドを提供できます。

関連する問題