0

在使用从 nuget 包获得的DLL 时,在Program files (x86)中遇到访问路径被拒绝错误:用于读取 ODF 文件的 AODL - https://www.nuget.org/packages/AODL/在我创建了一个使用SETUP Project的MSI 文件

在此处输入图像描述

在代码中,我不怀疑文件创建部分是在用户选择的文件转换路径中创建此文件,但不在程序文件文件夹路径中:

File.WriteAllText(targetFileName, sb.ToString(), Encoding.UTF8);

这就是为什么我只是怀疑 DLL,请让我知道如何找到错误并修复它。

4

2 回答 2

1

一堆目录——程序文件、系统驱动器的根目录、Windows——都受到 NTFS 权限的严格保护。写它们通常是一个简单的“不可行”。除非您拥有完整的管理权限——只有安装程序和非常罕见的管理工具甚至应该考虑——否则您将无法在那里编写。

但是,您表示这发生在read上。像这样被阻止读取是非常不寻常的。您需要检查在这些文件夹上设置了哪些权限以及原因。也许安装程序不小心从您的计算机复制了权限,这仅对您的用户和组有意义?也许 Windows 或第三方破坏了这些权利?我能想到的没有很多选择可以在这里适用。

于 2019-12-19T20:30:37.093 回答
0

对于这个应用程序,即使是从 Program Files 文件夹中读取 DLL,我也需要管理员权限,所以我强制应用程序拥有这样的权限才能执行。

新创建的应用程序清单文件的以下行已更改并解决了该问题。

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

如何强制我的 .NET 应用程序以管理员身份运行

原因在https://stackoverflow.com/a/50588465/129130中有详细说明

于 2019-12-20T10:23:53.850 回答