3

这是我最近开始遇到的一个奇怪问题。我的团队正在开发一个 COTS 应用程序,我们有几个人在编写代码。几周前,我在尝试调试(并运行已编译的 EXE)时收到一条错误消息:

“Windows 无法访问指定的设备、路径或文件。您可能没有访问该项目的适当权限。”

最后我不得不重构这段代码:

mcolSchedulesNeedingOverride(New Guid(lstrErrorParts(0))) &= vbNewLine & lstrErrorParts(2)

对此:

Dim lguidKey As New Guid(lstrErrorParts(0))
Dim lstrErrorMsg As String = mcolSchedulesNeedingOverride(lguidKey)
lstrErrorMsg &= vbNewLine & lstrErrorParts(2)
mcolSchedulesNeedingOverride(lguidKey) = lstrErrorMsg

然后允许 VS 生成一个实际工作的 EXE。我真的不明白为什么,但它奏效了。我确实使用了 peverify 实用程序来确定哪个程序集有问题。

现在,在昨天更新了大约 25 个文件后,我在不同的代码分支中遇到了同样的问题。这不会很有趣 - 所以我希望有人能提供一些关于为什么会发生这种情况的见解 - 这可能会帮助我缩小查找范围。

peverify 显示我们所有的程序集都是正确的,但会吐出 System.Windows.Forms.dll 的 90 多个错误!

有人有任何提示吗?

4

2 回答 2

2

你说你有几个开发人员在做这个项目,所以我想知道他们是否也遇到了这个问题。

如果它只发生在你的机器上,那么我不会去寻找代码中的问题(你所做的重构似乎与错误完全无关,所以我猜它后来工作的原因是另一个)但是去寻找一个你的环境中的问题。

您的 .NET Framework 安装可能有问题或配置不正确。你能看到哪个文件抛出了错误信息吗?为您机器上的任何程序集定义的任何策略?

于 2008-11-25T16:45:09.383 回答
0

当我从网络/某些不受信任的位置拉出二进制文件时,我最常遇到该错误消息。Windows 将“有帮助”并阻止对它的访问。

右键单击文件并选择属性,然后“取消阻止”

奇怪的是,错误在其他地方的表现不同,所以这可能完全不相关;但是在您的机器上构建会使Windows对文件的处理方式与下载的副本不同……但不确定这与重新启动有何关系。

编辑:有关我所指的“功能”的更详尽描述,请参阅此kb 文章

于 2008-11-26T00:27:01.323 回答