我反复遇到如下构建错误:
Failed to make the following project runnable: <project name>(.NETFramework,Version=v4.6.1) reason: Access to the path 'C:\<path from root>\src\<project name>\bin\Debug\net641\win7-64x\<some dll, exe, config, whatever>' is denied.
我从其他文件夹中得到了类似的错误,但将它们从源代码控制中移除会有所帮助(见下文)
有时手动转到资源管理器中的文件夹 > 右键单击 > 属性 > 取消选中“只读”可以成功构建,但随后 VS 或 TFS 再次锁定文件并返回相同的构建错误
特别是目前有两个 .dll 文件被添加到 bin 中,它们被反复设置为“只读”,我必须在重建时在文件资源管理器中手动修复它。据我所知,这些文件不在源代码管理中,但解决方案中另一个项目中同名的文件已 checkin 且未更改。
这可能与我使用的 asp.net Core RC2 有关,它还不是官方的,而且我将它与 Angular 2 RC1 但我认为这不相关。
一种理论认为,它与 TFS 有关,因为在我将项目置于源代码控制之下之前,错误似乎不会开始。
我在 Stack Overflow 上看到过许多类似的问题,但没有任何答案能够解决我自己重复出现的问题。
提示:我对转译的 .ts > .js 文件也有同样的看法,将它们从源代码管理中移除似乎有所帮助,但我根本没有在源代码管理中看到 bin 文件夹(当然它隐藏在解决方案资源管理器,我看不到在源代码管理资源管理器中取消隐藏的选项,所以不确定它是否存在......)
最佳答案
问题似乎是 TFS 与 .net Core 的集成,或者无论如何与 TFS 的问题。
解决方案一般是颠覆TFS,这很笨拙,应该没有必要。这是我做过的一些事情...
- 使用 .tfignore(类似于 .gitignore)来防止某些文件(例如转译的 .ts => .js)被 checkin 。如果不采取奇怪的步骤,这是行不通的 like installing this...
- 简单地检查并锁定任何文件仍然给我带来麻烦(请参阅我对其他问题的回答 here)
- 几乎任何其他策略都可以防止 TFS checkin 它不应该 checkin 的文件(有时就像将它们留在“排除的更改”列表中一样糟糕,直到其他人需要访问,此时我必须将它们全部删除和/或撤消所有更改)
总而言之,我真的希望在正式发布 .net Core 时,Microsoft 能够解决我遇到的大部分或所有可怕的错误。在这一点上,我非常想成为一名 node.js 开发人员。
关于c# - 如何阻止 asp.net 阻止对文件的访问然后在构建时抛出拒绝访问错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37928200/