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

  • 質問


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

    現在
    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_E6sKhxv2kJBig Smileownload.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 でプロジェクトを作成し、ビルドします。

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

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

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


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

    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.

    2007年11月6日 6:57

すべての返信