aco*_*aco 16 .net uac programdata windows-vista
我在"Program Files"目录下安装我的应用程序.我在"ProgramData"目录下安装数据:
Environment.SpecialFolder.CommonApplicationData
在programData中,我创建了用于保存数据的文件夹.例:
C:\ ProgramData\MyApp\MyData\here我有文件和文件夹
在XP下运行良好.但不是在Vista或W7 OS下.
我可以读取此目录中的文件,但我无法写入文件,我无法创建新文件等.用户被记录为管理员.
我可以无限制地存储数据?我需要将商店数据存储在所有用户都可见的文件夹中
编辑:
我在app.manifest文件中有这个代码:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- Opciones del manifiesto de Control de cuentas de usuario
Si desea cambiar el nivel de Control de cuentas de usuario de Windows, reemplace el
nodo requestedExecutionLevel por alguno de los siguientes.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Si desea utilizar la virtualización de archivos y del Registro para la compatibilidad
con versiones anteriores, elimine el nodo requestedExecutionLevel.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到可以存储程序数据的不同位置的易于理解的说明:
关于ProgramData,它说:
FOLDERID_ProgramData/System.Environment.SpecialFolder.CommonApplicationData用户永远不想在资源管理器中浏览此处,此处更改的设置应该影响计算机上的每个用户.在Windows Vista的安装上,默认位置是%systemdrive%\ ProgramData,这是一个隐藏文件夹.您需要创建目录并在安装时设置所需的ACL.
这是UAC的事情。您以管理员身份运行程序,以在此SpecialFolder中创建/删除文件/文件夹。
归档时间: |
|
查看次数: |
24380 次 |
最近记录: |