Wix 安装部署教程(七) 获取管理员权限
2014-09-19 15:51 stoneniqiu 阅读(3157) 评论(4) 编辑 收藏 举报应用程序运行的时候,难免会读写文件,产生新的数据。但Program Files下的文件是不能随便更改,Win7下如果没有权限,将会被拒绝。我现在有两种方式,一种是将数据路径移到Program Data目录下,一个是给文件赋予权限。
ProgramData
<Directory Id="CommonAppDataFolder"> <Directory Id="YourFolder" Name="YourFolder"> <Directory Id='dirC9846820F5B48BC9EAD9F647E841B025' Name='DemoProject' > <Directory Id='dirF6068DAA29DBB05A7EAD1E3B5A48BBEE' Name='Data' /> <Directory Id='dir10737BF4DF605200AA7B844D908DAED9' Name='GraphicPages' /> <Directory Id='dir16D2B386B2034B9488996466AAAE0B57' Name='History' /> <Directory Id='dirBE8545AE7AB0276E15898AAE7ACFBD7A' Name='Resource' /> </Directory> </Directory> </Directory>
当然这种方式你的应用程序路径要支持。
获取文件夹读写权限
<DirectoryRef Id='dirB59C44B238E764B86C6DFC0A8045E3FA' > <Component Id='cmpB59C44B238E764B86C6DFC0A8045E3FA' Guid='BDAA4089-F7C0-42E8-928E-B81901938FCD' KeyPath='yes' > <CreateFolder Directory="dirB59C44B238E764B86C6DFC0A8045E3FA"> <Permission User="SYSTEM" GenericAll="yes"/> <Permission User="EveryOne" GenericAll="yes" GenericRead="yes" Read="yes" ReadAttributes="yes" GenericExecute="yes" TakeOwnership ="yes" GenericWrite ="yes" WriteAttributes="yes" ReadPermission ="yes" ChangePermission="yes" /> <Permission User="Users" Domain="[LOCAL_MACHINE_NAME]" GenericRead="yes" Read="yes" ReadAttributes="yes" GenericExecute="yes" TakeOwnership ="yes" GenericWrite ="yes" WriteAttributes="yes" ReadPermission ="yes" ChangePermission="yes"/> </CreateFolder> </Component> </DirectoryRef>
这个需要应用WixUtilExtension.dll ,Wix命名空间也要加上: xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" >
开始没有加EveryOne,还是不能保存,加了才ok。安装完图标多了一个标志。
应该还有更好的办法或者思路,路过朋友还请赐教。
关注书山有路,用自己的知识体系去丈量世界!
书山有路群:452450927
书山有路群:452450927
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义