我正在尝试使用this article在我的安装程序中包含ngen。我希望在安装过程中(与priority=0)同步运行ngen,但它需要管理员权限才能运行。因此,现在我在日志中有以下消息:
MSI (s) (74:2C) [18:30:14:310]: Invoking remote custom action. DLL: C:\windows\Installer\MSI60B0.tmp, Entrypoint: ExecNetFx
ExecNetFx: Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1
ExecNetFx: Copyright (c) Microsoft Corporation. All rights reserved.
ExecNetFx: Installing assembly C:\myapp\myapp.exe
ExecNetFx: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
ExecNetFx: Administrator permissions are needed to use the selected options. Use an administrator command prompt to complete these tasks.
ExecNetFx: Error 0xffffffff: Command line returned an error.
ExecNetFx: failed to execute Ngen command (with error 0xffffffff): C:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe install "C:\myapp\myapp.exe", continuing anyway
ExecNetFx: Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1
ExecNetFx: Copyright (c) Microsoft Corporation. All rights reserved.
ExecNetFx: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
ExecNetFx: Administrator permissions are needed to use the selected options. Use an administrator command prompt to complete these tasks.
ExecNetFx: Error 0xffffffff: Command line returned an error.
ExecNetFx: failed to execute Ngen command (with error 0xffffffff): C:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe update /queue, continuing anyway当ngen正在启动时,有没有简单的方法来询问用户管理权限(使用标准的UAC提示符)?如果用户按下"No",我想在没有ngen的情况下继续。如果是-运行ngen并预编译我的应用程序。有什么想法吗?
谢谢。
发布于 2011-04-09 00:30:07
WiX已经运行了提升的NGen自定义操作(Execute="deferred“Impersonate="no")。您的.msi包必须针对每台机器才能运行它们。
https://stackoverflow.com/questions/5597524
复制相似问题