如何解决锁定文件错误? " ...包含msbuild项目,但没有导出文件"

时间:2016-11-02 21:04:14

标签: visual-studio asp.net-core asp.net-core-1.0 xunit.net

我正在运行visual studio Community 2015 Update 3.我有一个编译好的解决方案,但是当我尝试编译它时现在会产生错误。错误是

  

锁定文件Microsoft.DotNet.ProjectModel.Graph.LockFile包含msbuild项目,但没有导出文件

编译解决方案时,错误列表窗口中显示此错误,错误列表表明它与解决方案中的项目有关,该解决方案是包含xUnit测试的.Net核心库。

错误信息表明错误位于C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets

的第262行

下面选择的位置的屏幕截图:

enter image description here

解决方案包含:
针对net461的____Asp.Net核心项目
____Windows图书馆项目瞄准.Net框架
____第二个针对.Net Framework 4.61的Windows库项目 ____。针对net461的.Net核心图书馆项目(用于持有XUnit测试)


如果我尝试单独编译每个项目,除了包含生成此错误的xUnit测试的项目之外,它们都编译正常。

重大问题
那么"锁定文件Microsoft.DotNet.ProjectModel.Graph.LockFile包含msbuild项目但是没有导出文件"意思?我该如何解决?

2 个答案:

答案 0 :(得分:1)

发布我如何通过此错误以防其他人。最终,通过从解决方案中删除所有项目,逐个添加它们然后重新建立项目引用来解决此问题。我将根本问题归因于.net核心预览2工具仍然是不稳定的。

答案 1 :(得分:1)

我遇到了类似的问题,不是使用Visual Studio内部的构建,而是使用msbuild。很长一段时间,我确信这个错误是由dotnet工具在预览状态下引起的,但最终发现,一个xproj项目没有在另一个xproj项目之前构建,这取决于第一个。所以我开始寻找构建订单问题的解决方案,并且遇到了Victor Sergienko的一篇旧博客文章 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

EndProject

现在我的解决方案再次在TeamCity中构建......终于!