如何解决锁定文件错误? “...包含 msbuild 项目但没有导出文件”
How to resolve Lock file error? "...contains msbuild projects but there is no export file"
我是 运行 visual studio Community 2015 Update 3。我有一个解决方案一直在编译,但现在在我尝试编译它时产生错误。错误是
Lock file Microsoft.DotNet.ProjectModel.Graph.LockFile contains msbuild projects but there is no export file
当我编译解决方案时,此错误显示在错误列表 window 中,错误列表表明它与解决方案中的一个项目有关,该项目是一个包含我的 xUnit 测试的 .Net 核心库。
错误信息表明错误在C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets
的第262行
下面所选位置的屏幕截图:
解决方案包含:
____Asp.Net 针对 net461 的核心项目
____Windows 以 .Net Framework 为目标的图书馆项目
____ 针对 .Net Framework 4.61 的第二个 Windows 库项目
____一个针对 net461 的 .Net 核心库项目(用于进行 XUnit 测试)
如果我尝试单独编译每个项目,除了包含生成此错误的 xUnit 测试的项目外,它们都可以正常编译。
大问题
那么 "Lock file Microsoft.DotNet.ProjectModel.Graph.LockFile contains msbuild projects but there is no export file" 是什么意思呢?我该如何解决?
发布我是如何克服这个错误的,以防它对其他人有帮助。最终,通过从解决方案中删除所有项目,将它们一一添加回来,然后重新建立项目引用,解决了这个问题。我会将根本问题归因于 .net core preview2 工具仍然不稳定。
我有一个类似的问题,不是 Visual Studio 中的构建,而是 msbuild。很长一段时间以来,我确信错误是由处于预览状态的 dotnet 工具引起的,但最终发现,一个 xproj 项目不是在另一个依赖于第一个的 xproj 项目之前构建的。所以我开始寻找构建顺序问题的解决方案,并发现了 Victor Sergienko 的旧博客-post
http://victorsergienko.com/project-dependencies-of-visual-studio-2008-broken-in-msbuild/
通过将第二个项目的依赖项添加到第一个项目来解决问题,如下所示:
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ProjectOne", "ProjectOne.xproj", "{CAF36C07-36C7-4842-A2DA-9737005D2835}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ProjectTwo", "ProjectTwo.xproj", "{82875D1E-3F13-430B-8946-C26E08BD9DF9}"
ProjectSection(ProjectDependencies) = postProject
{CAF36C07-36C7-4842-A2DA-9737005D2835} = {CAF36C07-36C7-4842-A2DA-9737005D2835}
EndProjectSection
项目结束
现在我的解决方案再次在 TeamCity 中构建...终于!
我是 运行 visual studio Community 2015 Update 3。我有一个解决方案一直在编译,但现在在我尝试编译它时产生错误。错误是
Lock file Microsoft.DotNet.ProjectModel.Graph.LockFile contains msbuild projects but there is no export file
当我编译解决方案时,此错误显示在错误列表 window 中,错误列表表明它与解决方案中的一个项目有关,该项目是一个包含我的 xUnit 测试的 .Net 核心库。
错误信息表明错误在C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets
下面所选位置的屏幕截图:
解决方案包含:
____Asp.Net 针对 net461 的核心项目
____Windows 以 .Net Framework 为目标的图书馆项目
____ 针对 .Net Framework 4.61 的第二个 Windows 库项目
____一个针对 net461 的 .Net 核心库项目(用于进行 XUnit 测试)
如果我尝试单独编译每个项目,除了包含生成此错误的 xUnit 测试的项目外,它们都可以正常编译。
大问题
那么 "Lock file Microsoft.DotNet.ProjectModel.Graph.LockFile contains msbuild projects but there is no export file" 是什么意思呢?我该如何解决?
发布我是如何克服这个错误的,以防它对其他人有帮助。最终,通过从解决方案中删除所有项目,将它们一一添加回来,然后重新建立项目引用,解决了这个问题。我会将根本问题归因于 .net core preview2 工具仍然不稳定。
我有一个类似的问题,不是 Visual Studio 中的构建,而是 msbuild。很长一段时间以来,我确信错误是由处于预览状态的 dotnet 工具引起的,但最终发现,一个 xproj 项目不是在另一个依赖于第一个的 xproj 项目之前构建的。所以我开始寻找构建顺序问题的解决方案,并发现了 Victor Sergienko 的旧博客-post http://victorsergienko.com/project-dependencies-of-visual-studio-2008-broken-in-msbuild/ 通过将第二个项目的依赖项添加到第一个项目来解决问题,如下所示:
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ProjectOne", "ProjectOne.xproj", "{CAF36C07-36C7-4842-A2DA-9737005D2835}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ProjectTwo", "ProjectTwo.xproj", "{82875D1E-3F13-430B-8946-C26E08BD9DF9}"
ProjectSection(ProjectDependencies) = postProject
{CAF36C07-36C7-4842-A2DA-9737005D2835} = {CAF36C07-36C7-4842-A2DA-9737005D2835}
EndProjectSection
项目结束
现在我的解决方案再次在 TeamCity 中构建...终于!