【发布时间】:2017-01-03 08:11:11
【问题描述】:
我正在测试 .Net Core 1.0。有两种情况:
1) .Net Core 1.0 项目签入 TFS 2013
我根据 VS 提供的模板创建了初始项目。在初始签入到本地 TFS 2013 服务器后,以下构建(在我的机器上,而不是构建机器上)始终无法获得此和类似的 assess to the path is denied。
Error MSB4018 The "GenerateDependencyFragmentFile" task failed unexpectedly.
System.UnauthorizedAccessException: Access to the path 'C:\workspace\Project1\Solution1\Web1\project.fragment.lock.json' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalDelete(String path, Boolean checkHost)
at System.IO.File.Delete(String path)
at Microsoft.VisualStudio.ProjectSystem.DotNet.FileSystem.RemoveFile(String referenceFile)
at Microsoft.DotNet.Tasks.GenerateDependencyFragmentFile.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
C:\workspace\Project1\Solution1\Web1\Web1.xproj
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets
Line: 349
2) .Net Core 1.0 项目签入VSTS
我已经尝试过相同的基本项目,即开箱即用的项目,该项目未签入源代码管理并且构建良好。
我还尝试了相同的基本项目,即开箱即用的项目,该项目已签入 Visual Studio Team Service 在线源代码控制 (VSTC),并且构建良好。
还有什么?
我以管理员身份运行 VS。
因此,基于在互联网上发现的类似问题/解决方案,我尝试了以下操作。我检查了 project.json、project.fragment.lock.json 和 project.lock.json。此时项目构建失败:
Error Failed to make the following project runnable: Web1 (.NETFramework,Version=v4.5.2) reason:
Access to the path 'C:\workspace\Project1\Solution1\Web1\bin\Debug\net452\win7-x64\Microsoft.ServiceFabric.Internal.Strings.dll' is denied.
Web1
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets
Line: 262
我也尝试了以下解决方案:
- SO-37928200
- dotnet-cli#3794,由 安装最新的 dotnet-cli。
有什么建议吗?
更新 1
唯一有用的是检查整个packages 和有问题的项目文件夹。但对我来说,这似乎不是合理的解决方案。
更新 2
我更新了问题中的一些语言,以澄清在我的本地机器上构建失败而不是构建机器,我还没有谈到那部分。
【问题讨论】:
-
>我检查了 project.json、project.fragment.lock.json 和 project.lock.json。 project.fragment.lock.json 和 project.lock.json 在您的项目中还是在还原包期间生成?在构建过程中如何恢复包?如果您在该构建代理机器上通过 dotnet restore 命令手动恢复包,结果如何?
-
project.fragment.lock.json 和 project.lock.json 是项目的一部分,并已签入源代码管理。这是在我的机器上,而不是构建代理机器。
-
我无法重现该问题。如果不将 project.lock json、project.fragment.lock.json 和整个包检查到源代码管理中,会出现什么结果。 stackoverflow.com/questions/38448468/… , blog.falafel.com/what-is-project-lock-json
-
@starain 这就是我最终要做的,使用 .tfignore 排除 lock.json 文件。
标签: azure-devops azure-service-fabric asp.net-core-1.0