我正在为客户端创建一个C#.Net 4.0桌面应用程序。当我向他发送.msi文件时,它在尝试安装时需要管理权限。我意识到原因是因为我正在将应用程序安装到“Program Files”目录中。
有没有办法将应用程序安装到用户计算机上不需要以管理员身份安装的区域?
我正在使用.Net 4.0
答案 0 :(得分:1)
取决于应用程序具有哪些依赖关系,您可以尝试XCOPY部署 - 尽管似乎只记录了VS2005 + VS2008 ......
我们通常将所有的依赖项都嵌入到应用程序中(在我们的例子中是EXE文件),这样就可以通过复制它来“安装”...只要框架需要(在我们的例子中是.NET4)是已经在那里......
请参阅http://msdn.microsoft.com/en-us/library/ms235291%28VS.90%29.aspx
答案 1 :(得分:1)
不确定这是否会解决“需要管理员”问题,但您可以在安装项目的“文件系统”视图中更改安装的目标文件夹:
此外,通常最好将setup.exe与* .msi一起分发,以便可以自动安装任何缺少的先决条件。
答案 2 :(得分:1)
如果添加清单文件并分配给应用程序,则需要设置执行级别。
以下是您可以设置执行级别的行。
< requestedExecutionLevel level =“asInvoker”uiAccess =“false”/>
如果您希望您的exe运行始终作为管理员运行,那么您需要更改以上语句,如下所示
< requestedExecutionLevel level =“requireAdministrator”uiAccess =“false”/>
请参阅以下链接,了解如何创建清单文件。
http://mahesg.wordpress.com/2007/07/30/adding-manifest-to-net-application/
答案 3 :(得分:0)
通过右键单击“目标计算机上的文件系统”添加“用户的应用程序数据文件夹”并将“应用程序文件夹”中的所有文件移入其中,我已经掌握了管理权限。安装程序仍会提示安装目录,但会被忽略。快捷方式仍可正常设置。
它安装到Win7 C上的以下目录:\ Users \ username \ AppData \ Roaming 在xp下,它位于文档和设置文件夹下的某些位置。
我问了一个问题,为什么谷歌浏览器不需要许可,发现它安装到略有不同的文件夹C:\ Users \ username \ AppData \ Local \ Google \ Chrome \ Application。