Windows 10 Universal App – 类型存在于“Windows.Foundation.UniversalApiContract”中

不知何故(我甚至没有做过任何事情)我在Visual Studio 2015中得到了很多错误,但我无法理解问题到底是什么。

它说“Windows.Foundation.UniversalApiContract”库中存在很多“类型”。

有人能帮助我吗? 我可以做些什么来拯救我的解决方案和我的项目? 我有时试图清理和重建它,这没有帮助。

Visual Studio 2015中的错误

看起来您正在引用Windows 10 SDK元数据(UAP)和Windows 8.1 SDK元数据(Windows)。 您是在混合旧的和新的二进制文件,还是旧的项目文件? 尝试从头开始创建一个新项目并添加您的源。

我碰到了类似的东西:

15178错误,是吗?

不好玩。 我认为它是在我意外地将一个扩展方法添加到我保留在using Windows.ApplicationModel.DataTransfer;引用的可移植类库项目中的一组实用程序时开始的using Windows.ApplicationModel.DataTransfer; ,因为我(愚蠢地)添加了一些访问剪贴板到PCL的代码。 这有点道理; 现在我有效地瞄准了两个 Windows平台,这显然是错误的。

有一些东西被添加到该PCL项目的csproj文件中。 首先是这一行:

 false 

第二个是这个ItemGroup:

   ..\..\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\2.0.0.0\Windows.Foundation.UniversalApiContract.winmd   

我不确定是否所有这些都是必需的,但我确实删除了与剪贴板相关的代码,对Windows.ApplicationModel.DataTransfer;的引用Windows.ApplicationModel.DataTransfer; 在我using s,并重置/删除对csproj文件的更改。

然而,我仍然有很多相同的错误。 我发现干净的重建并不总是像我期望的那样工作,所以我创建了一个.bat文件,我保存在启动项目文件夹的根目录中,以便在遇到问题时运行。 首先,我必须在Visual Studio中关闭解决方案,然后运行…

 cd C:\Projects\solutionName\projectName cd ./bin rmdir x64 /S /Q rmdir x86 /S /Q rmdir ARM /S /Q cd ../obj/ rmdir x64 /S /Q rmdir x86 /S /Q rmdir ARM /S /Q cd .. pause 

在构建和提交到商店之前,我现在还必须运行它(再次,解决方案已关闭)。 不确定为什么,但做这两件事 – 删除非PCL代码和重置PCL项目并爆破那些/bin/obj文件夹 – 确实解决了这个问题。

我为什么不得不吹掉/bin/obj不科学的预感是VS并不总是按照依赖顺序构建我的项目,并且经常引用我的代码的旧编译时应该重新开始。 爆破任何可能过时的拐杖似乎迫使它做正确的方式。 ¯\ _(ツ)_ /¯