社内で開発したプログラムがあります。 Visual Studio 2012を使用するようにアップグレードしているため、Visual Studioインストーラープロジェクトを残しておく必要があります。 InstallShield LEは、アプリケーションが既にインストールされている場合、ショートカットに関する問題を引き起こしていました。これでようやくWiXが使えるようになりました。
私はこれを数日間調査し、管理者権限を取得する方法に関するいくつかの投稿を読みましたが、どれも機能していないようです。 Package
要素にはInstallPrivileges = "1"があり、次のProperty
要素が存在します。
_<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
_
起動時に管理者権限を要求しないため、C:\Program Files(x86)
にプログラムフォルダを作成しようとすると失敗します。
回答WiXインストーラーに管理者権限を要求する方法
コメント の Opus Krokus によって解決策が見つかりました。
回答
以下を(Package要素に)追加しましたが、どの(またはどの組み合わせ)が必要なものを提供しているかはわかりませんが、今は機能します:InstallPrivileges = "elevated" AdminImage = "yes" InstallScope = "perMachine"
このスタックオーバーフローの質問 の回答を見てください。
これが答えの本質です:
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
Opus Krokusによって提案された解決策は私にとってはうまくいきませんでした。
Windows 7(およびそれ以降のバージョン)でのインストール用に作成されたMSIの場合、これは私にとってうまくいきました:
<!-- Set per-machine installation as default.
See See http://msdn.Microsoft.com/en-us/library/dd408007.aspx for an explanation of ALLUSERS=2 and MSIINSTALLPERUSER="".
-->
<Property Id="ALLUSERS" Value="2" />
<!-- Needs to be empty value (and empty value must be commented out to get rid of error message when compiling):
<Property Id="MSIINSTALLPERUSER" Value="" />
-->
上記のXMLコメントで述べたように、詳細については http://msdn.Microsoft.com/en-us/library/dd408007.aspx を参照してください。
次の2つのコマンドが必要です。
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
<Condition Message="Installation requires Administrator privileges">
<![CDATA[Privileged]]>
</Condition>
Privileged
を<![CDATA[
と]]>
で囲む必要があることに注意してください。