编译XNA项目时出现无法执行所请求的操作错误

15

当我第二次编译一个项目时,会出现以下错误信息。我必须关闭 VS 2010,并在重新加载后进行编译。如果我进行更改,则问题会再次出现。

"无法复制文件“obj\x86\Debug\MyFile.dll”。无法对已打开用户映射节的文件执行请求的操作。"


1
很奇怪,昨天我在一个非XNA项目中遇到了这个问题。看起来像是VS/MSBUILD的一个bug。 - Jonathan Dickinson
我建议您在App Hub论坛上发帖,因为这可能是XNA和它使用的构建过程的问题(当然,正如@JonathanDickinson的评论所示,也可能不是)。 - George Duckett
@GeorgeDuckett,我们的构建策略非常复杂,我并不惊讶VS偶尔会在我们对它的期望上出现问题。 - Jonathan Dickinson
你好奇地问一下,你的解决方案中有多少个项目?当你说复杂时,你指的是什么——例如很多引用项目依赖关系吗? - Simon Jefferies
还有一件事要加入到这个方程式中,你使用的是什么操作系统? - Neil Knight
我正在使用Windows 7 64位操作系统。有一件事我注意到这个星期有许多VS 2010 SP1的更新,我怀疑这可能是导致问题的原因。我会逐个回滚这些更新,看看是否引起了问题。 - Simon Jefferies
7个回答

19

我的问题原因不同于其他人,所以我想为那些没有成功插件而遇到此问题的人分享解决方法。

在我的情况下,是因为项目设置页面被打开。我在项目中使用一个类型作为一个设置的类型,所以似乎Visual Studio会打开dll文件以获取规格,但又不会自动释放它。关闭设置页面或重启Visual Studio即可解决这个问题。


13

问题已找到 - 与安装了Visual Studio Achievements扩展有关。删除此扩展后,问题将消失。


3
非常感谢。这个问题困扰了我近一个星期!然而,它只在我安装成就几天后才开始出现,所以我没有注意到链接。谢谢! - Cesar
我就猜到是这样。谢谢你的确认。 - AlignedDev

4

我也因为一个愚蠢的错误遇到了同样的问题 :) 我所做的就是在Visual Studio对象浏览器中保持相应的输出dll打开。关闭对象浏览器中的该dll解决了这个问题。


1
对象浏览器也适用于我。 - sambomartin
1
我不得不关闭所有输出窗口和解决方案资源管理器,然后才能使其正常工作。 - user1270384

2

我在尝试在Visual Studio中保存文件时也遇到了这个问题(所以不是XNA,但是谷歌似乎在这里引导)。

问题的原因是我在终端中有一个部分完成的git命令正在运行 - 它是针对我要保存的文件的差异。

当我终止该命令后,问题就消失了。


1
当我从PowerShell命令行构建时,我总是遇到这个问题,我怀疑Git与此有关。当我没有任何活动的git任务运行时,这种情况就会发生。 - Eric Z Beard

0

对我来说,是Git扩展锁定了文件。我终止了卡住的git进程并重建了项目。如果你找不到是什么锁定了文件,你可以重新启动电脑 :)


0
在我的情况下,这个错误是由于微软安全性本质上扫描文件的时候在编译前保存后,Visual Studio立即导致的。然后编译器试图访问文件,并发现它被MSE锁定。将Visual Studio项目目录添加到排除列表中可以消除该错误。

0

我也遇到了同样的问题,但是我没有安装Visual Studio Achievements扩展!

我完全被这个问题卡住了,无法再编译我的代码了。


你安装了哪些插件?我会逐个禁用它们,看看是否有所不同。我发现问题与CodeAnalysis的使用有关,因此也与VS Achievements有关。 - Simon Jefferies

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接