这是我最近开始的一个奇怪的问题。我的团队正在开发一个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多个错误!
有人有任何提示吗?
答案 0 :(得分:2)
你说你有几个开发人员正在研究这个项目,所以我想知道他们是否也遇到过这个问题。
如果它只发生在你的机器上而不是我不去寻找代码中的问题(你所做的重构似乎与错误完全无关,所以我猜其后工作的原因是另一个)但是去吧在您的环境中寻找问题。
使用.NET Framework安装时可能会出现故障或配置错误。你能看到哪个文件抛出了错误信息吗?是否为您机器上的任何装配定义了任何策略?
答案 1 :(得分:0)
当我从网络/某个不受信任的位置拉出二进制文件时,我最常遇到该错误消息。 Windows将“有用”并阻止访问它。
右键单击该文件并选择属性,然后选择“取消阻止”
奇怪的是,错误在其他地方表现得与众不同,所以这可能完全不相关;但是在你的机器上构建将有窗口处理文件不同于下载的副本...不知道这与重新启动有什么关系。
修改:请参阅this kb文章,详细了解我所指的“功能”