NOEMBLEM/エンブレムが設定されていません。

メールの詳細(トピック表示)

WiXインストーラで昇格時に正しいプログラム名が表示されない

投稿者:geyseeさん  2013/05/15 15:15  MLNo.2942   [メール表示]

geyseeです。
お世話になっております。

WiX3.6で開発しております。

現在ActiveXコントロールのインストーラを作成しており、思うようにダイアログの表示ができず困っております。
ご助言頂きたく宜しくお願い致します。

MSIファイルを起動すると、ActiveXコントロールをレジストリに登録する必要がありますので、インストール時に管理者に昇格されます。

昇格時にユーザーアカウント制御「次のプログラムにこのコンピューターへのソフトウェアのインストールを許可しますか?」というダイアログが表示されるのですが、
ダイアログに記載されているプログラム名が"15701d0.msi"等のおかしな表示になってしまいます。
この時、ダイアログ中の「プログラムの場所」は起動したパスを表示しています。

また、コントロールパネルからアンインストールを実行すると、ユーザーアカウント制御ダイアログで、少し名前が変わり"15701d3.msi"と表示されました。
この時、ダイアログ中の「プログラムの場所」は"C:\Windows\Installer\15701d3.msi"と表示されています。

ユーザーアカウント制御ダイアログで正しいプログラム名が表示されない原因として、思い当たることがあればご教示頂けないでしょうか。
どうぞ宜しくお願い致します。


このエントリーをはてなブックマークに追加


  • MLNo.2943   とっちゃんさん  (0) 2013/05/15 15:36  [メール表示する]
    とっちゃんです。

    >昇格時にユーザーアカウント制御「次のプログラムにこのコンピューターへのソフトウェアのインストールを許可しますか?」というダイアログが表示されるのですが、
    >ダイアログに記載されているプログラム名が"15701d0.msi"等のおかしな表示になってしまいます。
    >この時、ダイアログ中の「プログラムの場所」は起動したパスを表示しています。
    >
    コード署名をつけていないと、ファイル名がそのまま出ます。

    画面上部が黄色になっていませんか?


    >また、コントロールパネルからアンインストールを実行すると、ユーザーアカウント制御ダイアログで、少し名前が変わり"15701d3.msi"と表示されました。
    >この時、ダイアログ中の「プログラムの場所」は"C:\Windows\Installer\15701d3.msi"と表示されています。
    >
    こちらも同様。
    Windows7 からだったかな?は、署名がされていれば、アンインストール時もきちんと出ますが
    Vista の場合はこの画面が出ます。こちらはOS側の仕様という名の制限事項なのでどうすることもできません。


    >ユーザーアカウント制御ダイアログで正しいプログラム名が表示されない原因として、思い当たることがあればご教示頂けないでしょうか。
    >どうぞ宜しくお願い致します。
    >
    ということで、認証済みの署名ファイルでコード署名を行うようにすれば解決すると思います。



    // とっちゃん(高萩 俊行)
    // http://blogs.wankuma.com/tocchann/
    // Microsoft MVP for Developer Tools - Visual C++
    // WindowsInstallerの話題は http://www.freeml.com/msi まで

  • MLNo.2944   Hiroyuki_Kさん  (0) 2013/05/15 15:55  [メール表示する]
    Hiroyuki_Kです。

    単に署名しただけではプログラム名が正常に表示されず、明示的に製品名などを設定しなければならなかった記憶しています。
    私の場合はMSのSignTool.exeを利用してデジタル署名を行っていますが、/D オプションで指定した内容がUACダイアログで表示されるプログラム名となります。

    【SignTool.exe (署名ツール)】
    http://msdn.microsoft.com/ja-jp/library/vstudio/8s9b9yaz.aspx

  • MLNo.2945   geyseeさん  (0) 2013/05/15 16:22  [メール表示する]
    geyseeです。

    早速のご返信ありがとうございます。

    > コード署名をつけていないと、ファイル名がそのまま出ます。
    > 画面上部が黄色になっていませんか?

    画面上部は青色になっております。
    署名はSignToolを使いVeriSignのデジタル署名を付けています。

    画面キャプチャを添付しましたのでご確認お願い致します。

    > /D オプションで指定した内容がUACダイアログで表示されるプログラム名となります。

    試してみましたが改善されませんでした。
    コマンドは下記を使いました。
    signtool sign /v /f ○○.pfx /p ○○ /t http://〜/timstamp.dll /D ○○ ○○.msi

    少し気になるのは、IEのObjectタグからMSIをダウンロード・インストールすると、プログラム名は[1]truename.msi[1]と表示さます。
    そして、MSIをIexpressでEXEにしたものをダウンロード・インストールすると、プログラム名がtruename.exeと表示されます。
    但し、アンインストール時はどちらも15701d3.msiと表示されてしまいます。

    signtoolのオプションをもう少し調べてみようと思います。
    宜しくお願い致します。

  • MLNo.2946   geyseeさん  (0) 2013/05/16 09:47  [メール表示する]
    geyseeです。

    すみません、私の方で抜けがございました。

    コード署名以外に中間CA(クロスルート)証明書も添付しているのですが、
    こちらにも"/D"オプションが必要でした。

    signtool sign /v /a /ac cross.cer /t http://〜/timstamp.dll /D "プログラム名" ○○.msi

    これにより、正しいプログラム名が表示されるようになりました。

    Objectタグからのダウンロードの場合は、中間CA証明書を使わなかったということでしょうか。

    とっちゃんさん、Hiroyuki_Kさんのおかげで早期解決することができ大変助かりました。
    ありがとうございました。


メールへの返信はMLのメンバーしかできません。

更新順メールリスト