对于大学的课程,教授为我们提供了一些我们要修改的骨架代码。当我尝试在Visual C ++ 2010 Express(x86)中编译代码时,收到以下错误:
C:\Users\[username]\AppData\Local\Temp\.NETFramework,Version=v4.0.AssemblyAttributes.cpp : fatal error C1083: Cannot open compiler generated file: 'Release\.NETFramework,Version=v4.0.AssemblyAttributes.obj': Permission denied
我登录的帐户对相关文件具有完全读写修改权限,而我使用的是Windows 7(x64)。为了使问题更加混乱,项目在调试模式下编译,但不在发布模式下编译,教授指示我们使用它。
提前感谢您的帮助。
答案 0 :(得分:6)
事实证明,解决方案只是删除项目文件夹中的.suo文件并重建项目。为什么这样有效,我不知道,但似乎这样做了。
答案 1 :(得分:3)
这可能根本不是权限问题,但可能是文件锁定问题。我相信如果你是这样的话,就会发生这种情况:
当一个项目正在写入该对象而另一个项目正在尝试读取该对象时,会发生什么情况,因为写入锁定会阻止它。
如果我错了,请纠正我。
答案 2 :(得分:0)
我从未遇到过这个特定的错误,但作为一般规则,我发现Visual Studio在安全方面存在很多问题。我无法在我的版本上注册COM程序集...例如,因为这个原因,我总是以管理员身份运行Visual Studio(管理员帐户不够用,您希望快捷方式以管理员身份启动)。这解决了我的COM问题以及我多年来遇到的其他问题。很长一段时间,但我希望有所帮助。
答案 3 :(得分:0)
在Windows 7和Windows 7上生成文件访问权限时,Visual Studio有点笨拙。 Vista中。
首先,尝试以管理员身份运行Visual Studio Express,方法是右键单击其快捷方式并选择黄蓝色盾牌选项。
如果这样做无效,请完全禁用用户访问控制(您应该可以使用管理员帐户执行此操作)。
答案 4 :(得分:0)
我有一个包含多个项目的解决方案,我从之前的开发人员继承。我也有这个问题,我终于找到了它的来源,所以也许这也是海报案例中的情况。
在我的项目设置中,项目中引用了许多源文件。当Visual Studio确定构建顺序时,它会并行构建彼此独立的项目。因此,可能会同时构建在两个单独项目中编译的文件,这可能导致锁定发生。
在我看来,引用项目中的文件是邪恶的。 :)正确的方法是,将共享文件放在库中,然后相应地设置依赖项。理论上也可以通过设置共享文件的项目的构建依赖关系来解决这个问题,但这是IMO任意的,因为项目可能没有有意义的依赖关系(就像我的情况一样)他们恰好重复使用相同的代码
在我的情况下,我有时可以毫无问题地构建整个解决方案,有时我必须多次重启。
这种情况可能发生的另一个原因是,当设置为某些(中间)文件生成到同一文件夹中时,也应该检查设置。
答案 5 :(得分:0)
如果你的项目在一种模式而不是另一种模式下编译好(例如Win32 vs x64,Debug vs Release),你应该仔细比较构建设置,特别是 包含目录
如果您的构建路径包含例如对D:驱动器的引用,则VS将误导性地抛出“拒绝访问”错误,而不是“找不到文件”。驱动器恰好是没有磁盘的DVD-RW驱动器。
打开 项目的属性> VC ++目录>包含目录 ,选择“配置:所有配置”和/或“平台:所有平台”,如果您看到{{1}然后仔细检查差异是什么。或者只是将包含目录从工作配置复制到损坏的目录。
然后重复 项目的属性> C / C ++>其他包含目录 。
答案 6 :(得分:0)
我遇到了同样的问题" 致命错误:拒绝权限"在Windows 10下使用Visual Studio C ++ 2017。
上面提到了解决方法:以管理员身份运行Visual Studio 。
答案 7 :(得分:0)
将cl.exe与/ Fo标志一起使用时,发生了我的权限错误。删除文件输出选项即可解决该问题。