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

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

アンインストール時にSC削除エラー

投稿者:shoheiさん  2012/10/23 19:12  MLNo.2869   [メール表示]

いつもお世話になっています。しょーへーと申します。

Win8 Pro(x64)で、Wix3.0/3.6 で作成したインストーラーのテストを行なっていたところ、
デスクトップにショートカットを追加するインストーラー(添付参照)にて、
InstallScope="perMachine"とした場合、アンインストールを実行すると以下のエラーが表示されました。

「警告1910。ショートカット TestApp.lnk を削除できません。
ショートカットファイルが存在し、アクセスできることを確認して下さい」

そのままアンインストールを完了させると、
パブリックデスクトップからはショートカットが消えたように見えますが、
F5で画面更新を行うと再びショートカットアイコンが表示され、削除されていない事が確認できます。

別のローカルアカウントや、関係しそうなパラメータ変更も試してみましたが、現象は変わらず。
ログの取得も試みましたが特に有用な情報を得ることが出来ませんでした。

Win7までは問題なかったので、何らかの修正が必要かも?と思いますが、
何か見落としている事や心当たりがございましたら、ご教授の程宜しくお願いします。


添付ファイル: TestSC.wxs
このエントリーをはてなブックマークに追加

最新の10件 1 2
  • MLNo.2873   shoheiさん  (0) 2012/10/24 15:12  [メール表示する]
    しょーへーです。

    > うーん。。。一応確認ですが、その環境に 「Public」というユーザー名のユーザーは作っていませんよね?

    作ってないですね。
    当初の環境ではユーザー名が全角だったので、半角でも確認し直しましたし、ドメインアカウントかどうかも関係ないようです。

    ちなみに、ProgramMenuFolderへのSC追加は、マシン単位でも問題無く追加・アンインストールが可能でした。

    あまりにもベーシックな部分で躓いてくやしい。。。

  • MLNo.2874   とっちゃんさん  (0) 2012/10/24 15:23  [メール表示する]
    とっちゃんです。

    >しょーへーです。
    >
    >> うーん。。。一応確認ですが、その環境に 「Public」というユーザー名のユーザーは作っていませんよね?
    >
    >作ってないですね。
    >当初の環境ではユーザー名が全角だったので、半角でも確認し直しましたし、ドメインアカウントかどうかも関係ないようです。
    >
    >ちなみに、ProgramMenuFolderへのSC追加は、マシン単位でも問題無く追加・アンインストールが可能でした。
    >
    >あまりにもベーシックな部分で躓いてくやしい。。。
    >
    おいらのところでも作ってるわけですが。。。

    ということで、何が違うのかもう一度見直してみました。

    <DirectoryRef Id="INSTALLLOCATION">
    <Component Id="DesktopShortcut" Guid="$(var.ComponentId_DesktopShortcut)" Transitive="yes" KeyPath="yes">
    <Condition>SC_DESKTOP</Condition>
    <Shortcut Id="AppFolder" Directory="DesktopFolder" Name="MenuAppFolder" Target="[MenuApp]" Show="normal" />
    <Shortcut Id="DesktopApp.exe" Directory="DesktopFolder" Target="[INSTALLLOCATION]App.exe" Show="normal" Name="App起動" Description="..." Icon="App.ico"/>
    </Component>
    </DirectoryRef>

    となっています(ちなみに実名称から書き換えてるので、探してもヒットしませんのであしからずw)。

    設定でデスクトップに貼り付けないというのと、
    スタートメニューのフォルダをリンクとして貼り付けてるので2個あるなど
    いくつか違ってますが(レジストリの有無も含め)

    一番大きいのは、コンポーネントのインストール先ですね。

    もしかしたら、コンポーネントのインストール先が DesktopFolder なのがダメなのかもしれません。
    いちど、[TESTAPP]に変えて試してみてはいかがでしょう?


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

  • MLNo.2875   shoheiさん  (0) 2012/10/24 16:17  [メール表示する]
    しょーへーです。

    > いちど、[TESTAPP]に変えて試してみてはいかがでしょう?

    既に実験済みだったりしますが、
    [TESTAPP]以下にコンポーネントを移動して、SCを Directory=DesktopFolder としてみましたが、状況変わらずでした。

    Componentの記述順を入れ替えてみても、やはりだめ。

    やけっぱちに、モジュールとSC両方のインストール先をDesktopFolder以下としてみたところ、モジュールは削除できましたが、SC削除時におなじみのエラーとなりました。

    パブリックデスクトップのテキストファイルの削除も問題がなかったため、SCの時だけ問題が発生しているように思えます。

  • MLNo.2876   とっちゃんさん  (0) 2012/10/24 16:48  [メール表示する]
    とっちゃんです。

    >> いちど、[TESTAPP]に変えて試してみてはいかがでしょう?
    >
    >既に実験済みだったりしますが、
    >[TESTAPP]以下にコンポーネントを移動して、SCを Directory=DesktopFolder としてみましたが、状況変わらずでした。
    >
    >Componentの記述順を入れ替えてみても、やはりだめ。
    >
    >やけっぱちに、モジュールとSC両方のインストール先をDesktopFolder以下としてみたところ、モジュールは削除できましたが、SC削除時におなじみのエラーとなりました。
    >
    >パブリックデスクトップのテキストファイルの削除も問題がなかったため、SCの時だけ問題が発生しているように思えます。
    >
    やっぱりやってますよねw

    現状コンポーネントを分けていますが、これをEXEのコンポーネントに集約してしまう
    というのは試してみましたか?

    あと、ショートカットのあるコンポーネントのキーパスがレジストリというのも
    なにか影響があるのかなぁ?という気がしなくもありません。

    Win8のMSIはMsiGetComponentPathがバグっていたとか、かなり怪しいので
    他にも潜在バグが埋まったままになてる可能性はかなりあるとにらんでます。

    特にショートカット関係は、スタートメニューが変わった影響がどこに潜んでいても
    おかしくないという程度には影響しているはずなので...


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

  • MLNo.2877   shoheiさん  (0) 2012/10/24 17:34  [メール表示する]
    しょーへーです。

    > 現状コンポーネントを分けていますが、これをEXEのコンポーネントに集約してしまう
    というのは試してみましたか?

    こちらも確認済みです。
    アドバタイズショートカットの方も試してみましたが、(ry

    > あと、ショートカットのあるコンポーネントのキーパスがレジストリというのも
    > なにか影響があるのかなぁ?という気がしなくもありません。

    非アドバタイズショートカット作成サンプルを探すと大体こんな感じの記述なので、
    問題の切り分けの為にシンプルに準拠してみました。

    2ヶ月程前に別のインストーラーをテストした時は、この問題に気がつかなかったので、
    クリーン&修正パッチ無し環境でテストしてみましたが、
    普通に再現してしまったので、環境に依存する問題でもなさそう。

    切り口を変えてもう少し調べてみます。
    日中ご多用のところ回答頂きありがとうございました。

  • MLNo.2878   shoheiさん  (0) 2012/10/25 15:22  [メール表示する]
    しょーへーです。

    NVIDIA のビデオドライバが原因くさいところまで判明したのでご報告。

    1. 仮想環境にWin8をインストールしてみる。
     →SC削除エラーは発生しない。
    2. LANケーブルを抜いた状態のテスト機にWin8をインストールみる。
     →SC削除エラーは発生しない。
    3. 「2」へLANケーブルを接続
     →しばらくすると、再起動後にSC削除エラー問題が発生するようになる。

    この時、「プログラム追加と削除」一覧に、次の3つが自動的に追加されている

    ・ 「NVIDIAグラフィックドライバー306.97」
    ・ 「NVIDIA アップデート 1.10.8」
    ・ 「NVIDIA 3D Vision ドライバー」

    どうも、勝手にインストールされてしまうドライバが怪しい。

    1. テスト機へのインストール中に「更新プログラムを自動的にインストールする」をOFFにする。
    2. OSインストール完了後、SC削除エラーは発生しないことを確認。
    3. WindowsUpdateの設定で、「更新プログラムをダウンロードするが、インストールを行なうかどうかは選択する」とする。
    4. 更新一覧に表示されている
    「nVidia Graphics Adapter WDDM1.1, Graphics Adapter WDDM1.2 Other hardware NVIDIA GeForce GT240」
    のみをインストール。OS再起動。
    5. SC削除エラーが発生するようになった。

    次の手順でも再現。

    1. オフライン状態で、Win8を新規インストール
    2. インストール後、SC削除エラーは発生しないことを確認。
    3. 予めNVIDIAからDLしておいたWin8用のドライバをインストール、OSの再起動。
    4. SC削除エラーが発生するようになった。

    上記の手順からドライバのインストールを省略すると問題は発生しないため、
    ビデオドライバのインストールがトリガーになっていると判断。

    一度ディスプレイドライバがインストールされると、アンインストール後も問題は改善されないので、システムに何らかの変更が加えられしまったと思われますが、
    これ以上は、MLの話題から外れてしまいそうですね。。。

    特定のデバイス構成では、通常の手順でWin8をインストールし、
    ネットワークに繋げているだけで問題が発生するようになるので、困った問題だなぁ・・と。
    社内では2台のPCで確認しているので、たまたまという訳でもないでしょうし。

    上記のテストはWin8Pro(x64)で確認しました。
    x86版で同じ現象が起こるかどうかは不明です。

  • MLNo.2916   ozzyさん  (0) 2013/02/26 11:30  [メール表示する]
    このNVIDIA製品の問題、MSDNフォーラム
    http://social.msdn.microsoft.com/Forums/en/winformssetup/thread/93b22821-ca04-42da-bb06-a559c95ce54e
    でも話題になっていましたね。

    私も困っていたのですが、どうやらNVIDIAドライバの2/18のアップデート314.07で修正されたようで、手元では再現しなくなりました!(’リリースノートにはそれらしい記述が見当たりませんでしたが…)

    既にご存じかもしれませんが、よろしければお試しください。

  • MLNo.2917   shoheiさん  (0) 2013/02/26 22:02  [メール表示する]
    しょーへーです。

    先週のアップデートで対策されていたのですね。
    情報ありがとうございました。こちらでも試してみます。

    (2013/02/26 11:30), ozzy wrote:
    > このNVIDIA製品の問題、MSDNフォーラム
    > http://social.msdn.microsoft.com/Forums/en/winformssetup/thread/93b22821-ca04-42da-bb06-a559c95ce54e
    > でも話題になっていましたね。
    >
    > 私も困っていたのですが、どうやらNVIDIAドライバの2/18のアップデート314.07で修正されたようで、手元では再現しなくなりました!(’リリースノートにはそれらしい記述が見当たりませんでしたが…)
    >
    > 既にご存じかもしれませんが、よろしければお試しください。
    >
    >
    > MLホームページ: http://www.freeml.com/msi
    >
    > ----------------------------------------------------------------------
    > 使い方はいろいろ♪一部のメンバーだけにMLメールを送ろう!
    > http://ad.freeml.com/cgi-bin/sa.cgi?id=j6YTI
    > ------------------------------------------------------[freeml byGMO]--
    >
    >

  • MLNo.2963   なべしゃぶさん  (0) 2013/07/05 19:49  [メール表示する]
    なべしゃぶです。

    私も同じような現象に悩んでいたのですが、以下の方法で発生しなくなりました。

     方法:デスクトップ上の”Desktop.ini”の読み取り専用を解除

    何かのタイミング(NVIDIAのドライバインストール?)で”Desktop.ini”に読み取り専用属性が設定されてしまい、SCが削除できなくなってしまっているようです。

    お試しください。

  • MLNo.3259   やっさん  (0) 2017/06/15 18:04  [メール表示する]
    随分昔のメールに対しての返信で恐縮です。

    いきなり話題を逸しますが、Bundleされたmsiを実行する場合、msi内部に組み込まれたメッセージボックスなどのUIを表示できないようです。
    http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Burn-MsiPackage-and-DisplayInternalUI-td7484106.html

    カスタムアクションなどから独自ダイアログやメッセージボックスなどを表示しようとしてもうまくいかないみたいですね。
    自分のインストーラはそのような凝ったものではないので縁のない話かと安心していました。


    が!ある環境で本件起因の「SC削除エラー」のメッセージが出たのです。いや、正しくはSC削除エラーメッセージが出ていると思しき状態でインストーラが止まったままになり、msiexec.exeを殺すしかなくなってしまいました。
    メッセージボックスは見えていないけど、どこかでOK押下されるのを待っているようです。(誰も押下できませんが・・)
    もちろんdesktop.iniの読み取り専用をなおしたら現象は起きなくなりました。

    契機についてもうちょっと正確に補足しておくと、アップグレードインストール時に起きました。このとき旧製品を一旦削除してからインストールしなおすという方法をとっています。(InstallInitialize時にRemoveExistingProductsしています)



    閑話休題。
    msiが特別なUIを作っているわけではなくともBundleに組み込んでしまうと環境によってはインストーラがハングアップしてしまう可能性があるということを意味しませんか?
    desktop.ini問題以外にも、WiXが自動的にメッセージボックスを表示するケース全般に言えるのではないですか?

    と勝手に恐怖しているのですが、どうなんでしょうかね?
    愚痴と情報共有までm(_ _)m



    > なべしゃぶです。
    >
    > 私も同じような現象に悩んでいたのですが、以下の方法で発生しなくなりました。
    >
    >  方法:デスクトップ上の”Desktop.ini”の読み取り専用を解除
    >
    > 何かのタイミング(NVIDIAのドライバインストール?)で”Desktop.ini”に読み取り専用属性が設定されてしまい、SCが削除できなくなってしまっているようです。
    >
    > お試しください。
    >

最新の10件 1 2
メールへの返信はMLのメンバーしかできません。