UWP-无法解析程序集或Windows元数据文件

时间:2018-07-18 14:38:10

标签: xamarin.forms uwp

一切进展顺利,直到几天前,当UWP在从VSTS(git)提取新版本并出现错误后突然停止构建:

  • 无法解析程序集或Windows元数据文件“类型Universe无法解析程序集:X.Core,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null。'
  • 由于找不到文件“ obj \ x86 \ Debug \ MainPage.xbf”,因此无法复制。
  • 由于找不到文件“ obj \ x86 \ Debug \ App.xbf”,因此无法复制。
  • 由于找不到文件“ obj \ x86 \ Debug \ X.Mobile.UWP.xr.xml”,因此无法复制。

我的解决方案结构如下:

  • X.Core(.NET标准类库)
  • X.Mobile(.NET Standard PCL)
  • X.Mobile.UWP(UWP特定项目)

UWP引用了Mobile,而Mobile引用了Core(Web API项目也引用了Core)。

我从源代码管理中提取的提交对X.Mobile.UWP .csproj文件没有任何更改。

我尝试过的事情:

  1. 必须清洁和重建。
  2. 删除整个解决方案的所有obj和bin文件夹。
  3. 删除并重新添加.UWP项目中的所有引用。
  4. 将Xamarin.Forms升级到最新的稳定版(3.1.0.637273)。
  5. 在X.Mobile项目中删除并重新添加X.Core参考。
  6. 删除C:\ Users \%username%.nuget文件夹。
  7. 将Microsoft.NETCore.UniversalWindowsPlatform更新到最新的稳定版(6.1.5)。
  8. 将目标版本更改为所有可用版本-我们已经在内部版本16299上运行了几个月。

几天来,我一直在不停地思考这个问题。 Android和iOS项目的构建都很好,考虑到UWP是我们最稳定的平台,这具有讽刺意味。有人有见识吗?

编辑: 将对X.Core的引用直接添加到X.Mobile.UWP项目之后,即可进行编译。尽管这不是答案,因为UWP从未直接引用Core。

2 个答案:

答案 0 :(得分:0)

我找到了解决方法。

我遇到了同样的问题,因为我在Xamarin.Forms解决方案中添加了一个新的(.Net Standard 2.0类库)项目。

简而言之,最初我的解决方案包括以下项目:

BackgroundTaskTest (which have all my Views and ViewModels)
BackgroundTaskTest.Android
BackgroundTaskTest.iOS
BackgroundTaskTest.UWP

突然我决定在同一解决方案文件夹中添加一个名为“ BackgroundTaskTest.Common”的类库:

BackgroundTaskTest.Common (new one)
BackgroundTaskTest (which have all my Views and ViewModels)
BackgroundTaskTest.Android
BackgroundTaskTest.iOS
BackgroundTaskTest.UWP

Android可以很好地工作,但是UWP项目不喜欢那个新邻居(在您的情况下为“ X.Core”)。因此,我将类从该新项目中再次移至“ BackgroundTaskTest”,并从我的解决方案中删除了带有所有引用的“ BackgroundTaskTest.Common”,并且该程序已开始工作。

要完成并简短起见,请将X.Mobile.csproj文件与X.Mobile.Core.csproj文件进行比较。您会发现差异中的问题。另外,请尝试检查对X.Core项目的所有依赖关系,以确保它们相同。

答案 1 :(得分:0)

我安装了NuGet软件包“ NETStandard.Library”,并将对我所有.Net Standard库的引用添加到了UWP项目中。这为我解决了问题!