【发布时间】:2016-10-22 01:03:48
【问题描述】:
我反复遇到如下构建错误:
未能使以下项目可运行: 项目名称>(.NETFramework,Version=v4.6.1) 原因:访问路径'C:\path from root em>>\src\项目名称>\bin\Debug\net641\win7-64x\一些dll、exe ,配置,无论>'被拒绝。
我从其他文件夹中收到了类似的错误,但将它们从源代码控制中移除会有所帮助(见下文)
有时手动进入资源管理器中的文件夹>右键单击>属性>取消选中“只读”适用于成功构建,但随后VS或TFS再次锁定文件并返回相同的构建错误
特别是目前有两个 .dll 文件被添加到 bin 中,它们被反复设置为“只读”,我必须在重建时在文件资源管理器中手动修复它。 AFAIK 这些不在源代码管理中,但解决方案中另一个项目中的同名文件已签入并且不会更改。
这可能与我正在使用 asp.net Core RC2 的事实有关,这还不是官方的,而且我正在将它与 Angular 2 RC1 但我认为这无关。
一个理论是它与 TFS 有关,因为错误似乎直到我将项目置于源代码控制之下才开始。
我在 Stack Overflow 上看到了许多类似的问题,但没有任何答案可以开始解决我自己的重复问题。
提示:我对转译的 .ts > .js 文件也有同样的感觉,将它们从源代码控制中移除似乎有所帮助,但我根本没有在源代码控制中看到 bin 文件夹(当然它隐藏在解决方案资源管理器,我看不到在源代码管理资源管理器中取消隐藏的选项,所以不确定它是否存在...)
【问题讨论】:
-
我想您可能已经回答了自己的问题,“一个理论是它与 TFS 有关”。从表面上看,这就是正在发生的事情。建议:每次与TFS同步时检查文件夹的安全设置,并始终以管理员身份运行VS
-
您不应该将项目 bin 文件夹中的已编译二进制文件检查到源代码管理中。一旦签入文件被设置为只读,直到签出。如果您需要/想要将二进制文件检入 TFS,请将它们移出项目(可能是构建后步骤)到一个文件夹中。当你编译VS需要能够删除然后重写你正在编译的项目的所有二进制文件。
-
一种测试方法...查看整个解决方案。如果在您检查了“所有内容”时,问题消失了,那么 VS 在编译期间需要重写的东西正在检查中。然后您可以弄清楚它是什么并将其从源代码管理中删除。
-
@DaniDev 我的问题是我在源代码管理资源管理器中看不到那些。它们隐藏在解决方案资源管理器中,但我在源代码管理资源管理器中看不到“取消隐藏”选项,因此不确定它们是否已签入。我对 TFS 很陌生 - 有没有不同的方法可以解决是吗?
-
你以管理员身份运行 VS 吗?
标签: c# asp.net tfs angular asp.net-core