我正在使用visual studio 2005从版本控制中获取代码后首先正确运行c#.net应用程序,但经过一些修改后,当我构建时出现这样的错误。
错误383无法将文件“.. \ root \ leaf \ Bin \ Debug \ test.Resources.xml”复制到 “斌\调试\ test.Resources.xml”。访问路径'Bin \ Debug \ test.Resources.xml'是 否认。 li.rollmodel
有没有人知道为什么会出现这个问题?
编辑我可以看到我的完整项目源代码物理文件夹是只读的,我无法删除该只读属性
首先,任何正文告诉我如何删除我已删除的文件夹的只读属性,但仍显示该文件夹,我从版本控制端尝试但效果相同。
答案 0 :(得分:260)
我通过从bin文件夹中删除有争议的文件并重建项目来解决这个问题。
答案 1 :(得分:115)
确保该文件夹不是只读文件并重建解决方案
答案 2 :(得分:67)
我解决了这个问题: 关闭Visual Studio,再次打开它并加载解决方案,重建您的解决方案。我的问题发生在使用TFS和VIsual Studio 2010。
答案 3 :(得分:45)
终止进程{{1}}并重建。
答案 4 :(得分:22)
我也遇到了这个问题。
首先去检查你是否已将bin和obj文件夹映射到Source Control程序。
这可能会将您的文件从二进制文件夹转换为只读存档,这使得Visual Studio在编译代码时无法覆盖它们。
转到并删除这些文件夹中的映射,检查更改并重试。
我的问题发生在使用TFS(团队基础服务器)和Visual Studio 2010。
希望这有助于某人。
答案 5 :(得分:18)
以管理员身份运行Visual Studio
答案 6 :(得分:8)
我使用Visual Studio 2013.我遇到过这个问题2次:
第一次,我在没有管理员权限的情况下运行Visual Studio。所以,我关闭VS并使用“以管理员身份运行”选项启动它。这解决了我的问题。
第二次,我多次重启VS,每次都确保我以管理员身份运行它。此外,我多次重建解决方案。但是,尽管我犯了错误。 之后,我从目标位置删除了相关文件(该文件已经存在,可能来自其尝试复制到的位置的上一个版本)并重建了解决方案。在那之后,错误就消失了,一切都顺利进行了!
答案 7 :(得分:7)
在我的情况下,它是阻止该文件的防病毒软件。
答案 8 :(得分:7)
这在Visual Studio 2017中再次出现,在这种情况下,原因是Application Insights进程ServiceHub.DataWarehouseHost.exe。
线程中讨论了一种解决方法,即在每次构建项目时向项目添加预构建事件以终止进程。引用该链接:
- 右键单击项目
上的属性- 选择属性
- 构建活动
- 预构建事件命令行
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
- 保存并构建
答案 9 :(得分:6)
任何人都可以知道为什么会出现这个问题吗?
查看您通过手动复制解决问题的回答,我会说您正在处理的代码是由其他一些用户制作的(也是管理员权限),因此它已被锁定。通过执行复制 - ?粘贴,您使用所需的所有访问权限制作了源的OWN副本。唯一需要注意的是,在这种情况下,如果其他开发人员需要处理您的副本,他/她将会遇到您之前遇到的相同问题。
答案 10 :(得分:3)
首先转到文件的位置。然后右键单击文件的文件夹->属性-> 未选中的只读选项,然后将其应用于文件及其子文件夹。 它解决了我的问题。 祝您编码愉快!
答案 11 :(得分:3)
有同样的问题,但每次都没有选择重启Visual Studio ,因为问题有时会经常发生。
我通过安装Unlocker (尝试在安装时安装任何工具栏,因此不要忘记取消选中此)来处理它,此应用程序让我快速访问重命名/删除锁定的“.xml” - 文件。我知道这只是一种解决方法,但对我来说这是解决这个问题的最快解决方案。
答案 12 :(得分:3)
我重新添加了所有非.NET依赖项/引用,它就可以了。
答案 13 :(得分:2)
我看到的大多数答案都是客观地探索环境可能存在的问题,这对于 99% 遇到此问题的人来说可能是正确的(无法将文件从...复制到...访问被拒绝) .
我想我应该为 1% 由于其他原因而遇到此问题的人分享我的经验。
我编写了一个批处理文件重命名程序,用于处理数以万计的文件,我的 AntiVirus 将其解释为木马并自动隔离它。将此路径放在我的 AntiVirus 黑名单中,visual studio 永远无法将 *.exe 复制到 bin 文件夹中,从而导致无法复制 .exe。
我的解决方案是将此路径列入白名单,问题已解决。
干杯。
答案 14 :(得分:2)
我自己解决了这个问题。问题是我在另一个地方打开了解决方案。关闭后它可以工作
答案 15 :(得分:2)
如果将任何文件复制到解决方案中,请确保文件不处于“只读”模式。右键单击文件并取消选中属性选项解决了我的问题。
答案 16 :(得分:2)
我遇到了同样的错误,但我使用的是 Perforce 版本控制。以下是我修复它的方法。
答案 17 :(得分:2)
旧帖子,但是这个僵尸正在打VS 2017(我还没有研究为什么它只是“一些”项目)。在这种情况下,它不是用户权限,而是IIS Express进程仍在使用文件。
rebuild
,而不会收到这条令人讨厌的“权限被拒绝”消息。这也是为什么“重新启动Visual Studio”将“解决”问题的原因。这样做,停止IIS Express。
Hth ...
答案 18 :(得分:2)
当我向解决方案添加新的安装项目时,我创建了这个问题,然后将文件直接从主应用程序项目的/ bin / release文件夹添加到安装项目的应用程序文件文件夹中。安装项目的源代码控制一直阻止我完成主应用程序项目的构建。
解决方案:在任何项目之外创建一个单独的转储文件夹,其中包含要包含在安装中的所有文件,并从那里添加它们。这是一个痛苦,因为现在我必须记住复制每个新安装包的所有文件。我可能会看到我是否可以使用后期构建操作做一些自动构建,以使流程更顺畅。
答案 19 :(得分:2)
我也有同样的问题。我收到的错误消息与无法复制相关,因为访问路径被拒绝。在我的情况下,所有我的dll和xml文件等都放在D:\ TFS \ Example \ Bin \ Debug文件夹中。
我右键单击Bin文件夹并单击属性,并在“属性”下看到“只读”复选框。
我取消选中了“只读”复选框,并在显示的新弹出窗口中单击“确定”并单击“确定”。
我回到Visual Studio并构建我的解决方案,它给了我错误消息。
Voilaa ..这次成功构建没有错误。
我不知道这是否完美,但我这样做是为了解决我的问题。
答案 20 :(得分:2)
检查任务管理器,确保没有挂起devenv.exe进程。杀掉失控的过程,然后再试一次。
答案 21 :(得分:1)
1)关闭Visual Studio解决方案
2)导航到命令提示符->以管理员身份运行-> iisreset / stop
3)导航到c-> Windows-> Microsoft.Net-> Framework64-> v4.030319->临时Asp.NET文件->删除所有文件和该路径中的文件夹。
4)导航回命令提示符-> iisreset / start
5)现在打开Visual Studio->以管理员身份运行->清理解决方案并进行构建(不要重新构建。.build仅对我有用)
答案 22 :(得分:1)
我能够通过从目标网站的bin文件夹中删除抱怨的目标文件(在您的示例" Bin \ Debug \ test.Resources.xml"中)来重新构建它那为我修好了。
答案 23 :(得分:1)
我也遇到过这个问题。以下是如何解决此问题的
@NodeEntity
public class User extends BaseEntity {
public static final String HAS_ACCOUNT = "HAS_ACCOUNT";
@Index(unique = true)
private String username;
public String firstName;
public String lastName;
private String password;
private Roles[] roles;
private YodleeSession yodleeSession;
@Transient
private PasswordEncoder passwordEncoder;
public User() {}
public User(String username, String firstName, String lastName, String password, YodleeSession yodleeSession, PasswordEncoder passwordEncoder, Roles... roles) {
this.username = username;
this.firstName = firstName;
this.lastName = lastName;
this.yodleeSession = yodleeSession;
this.passwordEncoder = passwordEncoder;
this.roles = roles;
this.password = encodePassword(password);
}
// Getters
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getUsername() {
return this.username;
}
public String getPassword() {
return password;
}
public YodleeSession getYodleeSession() {
return yodleeSession;
}
public Roles[] getRoles() {
return roles;
}
// Setters
public void setUsername(String username) {
this.username = username;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public void setYodleeSession(YodleeSession yodleeSession) {
this.yodleeSession = yodleeSession;
}
public void setPassword(String password) {
encodePassword(password);
}
public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
this.passwordEncoder = passwordEncoder;
}
// Roles
public enum Roles implements GrantedAuthority {
ROLE_USER, ROLE_ADMIN;
@Override
public String getAuthority() {
return name();
}
}
public void setRoles(Roles[] roles) {
this.roles = roles;
}
// Bank accounts
@Relationship(type=HAS_ACCOUNT, direction = Relationship.OUTGOING)
private Set<Account> accounts;
public Set<Account> getAccounts() {
return this.accounts;
}
public void addAccount(Account account) {
if (accounts == null) {
accounts = new HashSet<Account>();
}
accounts.add(account);
}
// Password
private String encodePassword(String password) {
return passwordEncoder.encode(password);
}
public void updatePassword(String old, String newPass1, String newPass2) {
if (!password.equals(encodePassword(old))) throw new IllegalArgumentException("Existing Password invalid");
if (!newPass1.equals(newPass2)) throw new IllegalArgumentException("New Passwords don't match");
this.password = encodePassword(newPass1);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
if (nodeId == null) return super.equals(o);
return nodeId.equals(user.nodeId);
}
}
文件夹。这个过程对我有用。
答案 24 :(得分:1)
我也有同样的问题。我通过取消选中根文件夹的只读属性来修复它。
答案 25 :(得分:1)
右键单击您的MVC项目并单击clean选项。我有一个类似的问题,在重建之前清理项目为我解决了。
答案 26 :(得分:0)
转到文件的路径,然后取消选中此文件的只读复选框。
答案 27 :(得分:0)
简单解决方案:
只需升级以下软件包
Microsoft.CodeDom.Providers.DotNetCompilerPlatform v1.0.5 to v1.0.7
它将解决问题。
答案 28 :(得分:0)
我遇到了同样的问题,要解决此问题,我已经检查/完成了几件事
什么没用
1) Read/write permissions were given to directory
2) Restarted visual studio
3) Tried deleting visual studio temp files
最后成功了
只需将Fred Morrison给出的命令粘贴到“包管理器控制台”中即可:
Get-Process | Where-Object -Property Name -EQ 'VBCSCompiler' | Stop-Process -Force -Verbose
注意:只是一个观察结果在这种情况下,重新启动Visual Studio可能不起作用,但是重新启动系统可以,因为停止销进程“ VBCSCompiler”是解决方案,所以我们可以采用任何一种方式。
答案 29 :(得分:0)
对我来说,问题在于解决方案中的另一个项目具有相同的.dll文件,该文件最近已签入。
手动将最近签入的.dll版本从另一个项目bin文件夹复制到正在生成错误的项目中的bin文件夹中。
对于我们的解决方案,较长期的解决方案是对解决方案中的所有项目使用完全相同的.dll,而不是在多个项目中使用相同的.dll文件,但是我不希望解决该问题,因此快速解决-dirty解决方案是仅复制较新的版本。
答案 30 :(得分:0)
我在这里进行了所有尝试,以某种方式删除了项目中的所有bin和obj文件夹均无效。从其他进程释放文件夹没有任何作用。重新启动没有任何反应。通过在主文件夹上取消选中每个文件来删除只读无济于事。
每个依赖最终都会使自己陷入困境。直接在依赖项文件夹中进行构建可以使我感到困惑。我打算重复这个问题,但是我发现有什么用。
你知道什么有用吗?
dotnet clean
答案 31 :(得分:0)
在尝试了几乎所有方法之后,只需将项目复制粘贴到不同的位置并构建项目......并且它起作用了。
答案 32 :(得分:0)
我在安装 Windows Update KB5003637 后开始发生。我的 VS2019 项目之前运行良好,但在安装 Windows Update 后出现此错误。卸载它,项目再次运行。
答案 33 :(得分:0)
在Visual Studio 2015中更改输出路径对我有用。这应该有帮助 - Changing the Build Output directory
答案 34 :(得分:0)
就我而言,我使用Visual Studio Community 7.1.5 for Mac将项目从Windows移植到OSX。诀窍是禁用项目首选项上的Use MSBuild engine (recommended for this type of project)
选项:
答案 35 :(得分:0)
我试图注销并重新登录,这对我有用。希望这会帮助其他人。
答案 36 :(得分:0)
这可能是最初从源代码控制(TFS等)加载源的奇怪副产品,其中所有文件和文件夹都是写保护的。转到顶级目录并检查属性,您可以找到只读属性已选中。取消选中该选项,系统应询问您是否要将顶级下的所有目录设置为可写。这应该解决它。
答案 37 :(得分:0)
确保在路径名(path \ fileName.extension)之后附加文件名。我花了一个多小时没注意到这一点。
答案 38 :(得分:0)
我多次遇到此问题,我找到的解决方案是删除调试文件夹,然后重建您的解决方案/项目。为我工作!!
答案 39 :(得分:0)
清除“bin \ debug”中所有引用的库,然后在单击“Clean Solution”后右键单击解决方案资源管理器中的Solution。
重建!!
答案 40 :(得分:0)
所以我遇到了同样的问题,我的原因,我的开发文件夹共享,所以我可以使用mac作为使用Xamarin的IOS应用程序的构建主机。该项目在mac上运行,它获取了dll的所有权,因此我无法从其他任何地方更改该dll。只需在mac上停止应用程序就可以将所有权返还给我,从而再次允许完全访问权限。我希望这可以做到。
答案 41 :(得分:0)
我知道它是一个旧线程但是对于那些寻找答案的人,比如我几分钟之前,我建议先尝试重新启动计算机。仅此一点对我而言。以前甚至无法手工复制到文件夹。
答案 42 :(得分:0)
您不应将文件夹属性更改为not-readonly。 您看到此错误消息的原因是源控件假定您只将杂项文件存储在bin文件夹以外的其他位置,因为它为.Net自动创建的文件保留,并且不希望将它们添加到源文件中控制。
我建议您不要使用Environment.CurrectDirectory
(我假设您当前正在使用),而是在%appdata%地址中创建一个名为“MyProjectName”的文件夹,然后使用:
System.IO.Path.Combine(Environment.GetEnvironmentVariable("appdata"),"YourProjectName")
。
答案 43 :(得分:-1)
如果在尝试其他任何事情之前有人想要一个额外的简单解决方
只需重新启动电脑即可。 打开Visual Studio,再次尝试构建。