DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VisualStudio2005 で作成したインストーラ(msi)のvista対応について

環境/言語:[VisualStudio .NET2005 C#]
分類:[.NET]

初めまして。
お世話になります。

現在
VisualStudio2005 .NET C#で開発しております。

セットアップツール(msi形式のインストーラ)についてXPからのVista対応を現在行ってます。
msiのインストーラについては、内部でexeを3つ呼ぶ形となってるのですが、あるexeに関して「管理者として実行」をする必要があります。

Vista環境では右クリックで「管理者として実行」というのが追加されましたが、msi形式のインストーラでは右クリックで「管理者として実行」はできません。

その対応を現在行ってて、いろいろと調べた結果、マニフィストファイルを作成してmt.exeを使う方法で対応しようと考えています。

このHPの「マネージコード (Visual Basic、C#、J# ) でマニフェストを埋め込むには」を参考に行ってます。
http://72.14.235.104/search?q=cache:5_E6sKhxv2kJ:download.microsoft.com/download/3/4/4/3448ddf3-ca22-45bd-9984-1237e8ed0019/Windows_Vista_application_compatibility_paper.doc+%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BF%E3%83%9E%E3%83%8B%E3%83%95%E3%82%A7%E3%82%B9%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B&hl=ja&ct=clnk&cd=4&gl=jp&lr=lang_ja

簡単な手順としては、
@Visual Studio 2005 でプロジェクトを作成し、ビルドします。

A「level="requireAdministrator"」属性を含むマニフェストファイルをテキストエディタなどで作成します。ファイル名は任意のもので構いません。ファイルの内容は、「埋め込みマニフェストを作成するには」の手順で紹介した Xml に似ていますが、名前空間の重複を避ける必要があるため、名前空間を別途指定する必要があります。以下にサンプルを示します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2"> <ms_asmv2:security> <ms_asmv2:requestedPrivileges> <ms_asmv2:requestedExecutionLevel level="requireAdministrator"> </ms_asmv2:requestedExecutionLevel> </ms_asmv2:requestedPrivileges> </ms_asmv2:security> </ms_asmv2:trustInfo></assembly>

B「mt.exe」コマンドを使用してマネージコードにアプリケーションマニフェストを埋め込みます。以下の例は、「IsUserAdmin.exe」アプリケーションに、「IsUserAdmin.manifest」で定義されたアプリケーションマニフェストを埋め込む例です。
mt.exe &#8211;manifest IsUserAdmin.manifest &#8211;outputresource:IsUserAdmin.exe


上記手順通りにAのマニフィストファイルを作成し、
[アプリケーション名.manifest]をexeファイルと同じディレクトリに置き
Bのコマンドを流したんですがエラーとなります。

mt.exeのコマンドが上手く実行できてないのかなと思うのですが、
詳しい方がおられたら教えて頂きたいと思います。

DOSでの実行結果

ディレクトリ=アプリケーション(exeファイルの場所)
コマンド=
"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\mt.exe"
-manifest IsUserAdmin.manifest
-outputresource:IsUserAdmin.exe

エラー内容:
mt.exe : command line error c1010007: Unexpected/Unknown option
" manifest". Use the /? option for help on usage and samples.
この投稿はマルチポストです。

●マルチポストされている場所
http://bbs.wankuma.com/index.cgi?mode=one&namber=9880&type=0&space=0

----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのマナーについて」をお読みください。

●書き込みのマナーについて
http://dobon.net/vb/bbs/index.html
すみません。
初めての書き込みでマナーについて勉強不足でした。

今後、このような事が無いように気をつけます。

DOBON.NET | プログラミング道 | プログラミング掲示板