拒绝访问。读取和写入文件。授予阅读权限
Acess Denied. Reading and writing the file. Grant reading permission
安装后应用程序报错
access denied to the file PathName\BLsms.ocx
此处PatheName为完整路径
高级安装程序用于创建安装程序。
然后应用程序安装在 C Drive
。
如何让这些文件可读写?
我正在使用这个代码。
try
{
this.brlmfc = new BinaryReader(new FileStream("BLsms.ocx", FileMode.Open, FileAccess.ReadWrite,FileShare.Read));
this.brocx = new BinaryReader(new FileStream("BLrpi.lfc", FileMode.Open,FileAccess.ReadWrite));
this.brlmc = new BinaryReader(new FileStream("rpcgh.lfc", FileMode.Open,FileAccess.ReadWrite));
this.passkey1 = this.brlmfc.ReadString();
this.passkey2 = this.brocx.ReadString();
this.passkey3 = this.brlmc.ReadString();
}
catch (Exception e13)
{
MessageBox.Show(e13.Message);
i = 0;
}
我也在 Form Load 方法中尝试了以下代码。
FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.AllAccess, Application.StartupPath+"\BLsms.ocx");
f2.AddPathList( FileIOPermissionAccess.Read, Application.StartupPath+"\BLrpi.lfc");
f2.AddPathList( FileIOPermissionAccess.Read, Application.StartupPath+"\Brpcgh.lfc");
f2.Demand();
我假设您正在将程序安装到 C:\Program Files
或 C:\Program Files (x86)
。不要写在那些目录中。请改用 C:\ProgramData
或用户的主目录。
我已经从 Advance Installer 设置了文件的 read/write 权限。并且工作正常。
http://www.advancedinstaller.com/user-guide/permission-dialog.html
谢谢大家。
默认情况下,用户组在程序文件等每台计算机位置没有写入权限。这是与安装无关的 Windows 标准。但是,在安装期间您可以设置任何您想要的权限。
Windows 安装程序支持自定义权限,但 Visual Studio 不提供设置它们的方法。因此 Visual Studio 中唯一的解决方案是自定义操作。
很遗憾,Visual Studio 不支持附加的自定义操作。因此,使用 XCACLS.EXE 设置权限只有在您将其包含在您的包中时才有效(它将与您的文件一起安装在目标机器上)。
更简洁但更复杂的解决方案是自己编写自定义操作(使用自定义代码)来设置所需的权限。
最快最干净的解决方案是使用不同的设置创作工具,它可以更好地控制权限。
安装后应用程序报错
access denied to the file
PathName\BLsms.ocx
此处PatheName为完整路径
高级安装程序用于创建安装程序。
然后应用程序安装在 C Drive
。
如何让这些文件可读写?
我正在使用这个代码。
try
{
this.brlmfc = new BinaryReader(new FileStream("BLsms.ocx", FileMode.Open, FileAccess.ReadWrite,FileShare.Read));
this.brocx = new BinaryReader(new FileStream("BLrpi.lfc", FileMode.Open,FileAccess.ReadWrite));
this.brlmc = new BinaryReader(new FileStream("rpcgh.lfc", FileMode.Open,FileAccess.ReadWrite));
this.passkey1 = this.brlmfc.ReadString();
this.passkey2 = this.brocx.ReadString();
this.passkey3 = this.brlmc.ReadString();
}
catch (Exception e13)
{
MessageBox.Show(e13.Message);
i = 0;
}
我也在 Form Load 方法中尝试了以下代码。
FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.AllAccess, Application.StartupPath+"\BLsms.ocx");
f2.AddPathList( FileIOPermissionAccess.Read, Application.StartupPath+"\BLrpi.lfc");
f2.AddPathList( FileIOPermissionAccess.Read, Application.StartupPath+"\Brpcgh.lfc");
f2.Demand();
我假设您正在将程序安装到 C:\Program Files
或 C:\Program Files (x86)
。不要写在那些目录中。请改用 C:\ProgramData
或用户的主目录。
我已经从 Advance Installer 设置了文件的 read/write 权限。并且工作正常。
http://www.advancedinstaller.com/user-guide/permission-dialog.html
谢谢大家。
默认情况下,用户组在程序文件等每台计算机位置没有写入权限。这是与安装无关的 Windows 标准。但是,在安装期间您可以设置任何您想要的权限。
Windows 安装程序支持自定义权限,但 Visual Studio 不提供设置它们的方法。因此 Visual Studio 中唯一的解决方案是自定义操作。
很遗憾,Visual Studio 不支持附加的自定义操作。因此,使用 XCACLS.EXE 设置权限只有在您将其包含在您的包中时才有效(它将与您的文件一起安装在目标机器上)。
更简洁但更复杂的解决方案是自己编写自定义操作(使用自定义代码)来设置所需的权限。
最快最干净的解决方案是使用不同的设置创作工具,它可以更好地控制权限。