22

我正在使用 Visual Studio 2010,如何设置或自动将输出文件的所有者从 Visual Studio(如可执行文件)更改为管理员以外的用户?

目前所有输出文件都归管理员所有(由于 Visual Studio 是由管理权限启动的),所以有时我无法删除这些文件,因为访问权限。

有时,Visual Studio 本身也无法删除它(在我运行可执行文件之后),直到几分钟,当我需要重建这些可执行文件时,它真的很烦人。有谁知道这里的实际问题是什么?

错误信息是:error LNK1168: cannot open [path to file].exe for writing

4

4 回答 4

33

哇哦,我终于想通了。

这是 Windows 7 中的错误,并且可能在 Windows Server 2008(可能仅限 64 位版本)中。当您禁用应用程序体验服务时,它会出现。

重新启用此服务为我解决了这个问题。

你无法想象我有多高兴,这让编程变得如此令人沮丧,因为它不仅会弄乱 VC,而且会弄乱任何编译器,而且最重要的是它是非常随机的。

这里有更多关于它为什么会导致问题的信息。

其他似乎相关的 SO 问题列表:

于 2010-12-29T21:50:49.077 回答
8

如上所述,解决此问题的方法是启用 Windows 应用程序体验服务。以下是如何执行此操作:

  1. Windows 键 + R
  2. 在弹出的窗口中输入“services.msc”
  3. 在列表中,找到“应用程序体验”。
  4. 双击它并从“禁用”更改为“启用”

它现在应该可以工作了!为我工作:)

资料来源:http ://www.techknowl.com/disable-unwanted-services-and-speed-up.html

于 2013-04-14T20:32:10.110 回答
0

好吧,创建的文件将归创建者所有,如果您以管理员身份运行 Visual Studio,那么从所有者的角度来看,您只是以这种方式坚持下去。

就个人而言,除非您将 IIS 用于 Web 应用程序,否则我发现自己以普通用户的身份运行 Visual Studio 的频率越来越高,至少在 VS 2010 中是这样。

关于 Visual Studio 无法删除文件的问题,我之前已经看到过构建错误,有时如果您有多个项目引用同一个程序集。您最好的选择是尝试追踪锁定,然后您可以终止锁定或重新启动 Visual Studio。

我通常使用 Process Explorer(来自 SysInternals)来简单地删除文件上的句柄。(注意:这不是一个“好”的想法,但它有效....)

于 2010-07-22T19:42:12.713 回答
0

没有人给出正确的答案,所以我将这个问题作为操作系统中的错误关闭,而不是在 Visual Studio 中,可能由于文件句柄归“系统”进程(PID 4)所有,所以 O/S 受到了损害,我可以t 释放文件句柄,因为它使用进程资源管理器报告文件句柄无效。

于 2010-07-25T22:49:55.813 回答