MSBuild error MSB3107
我在 MSBuild 上收到以下错误:MSB3107
C:\\\\Windows\\\\Microsoft.NET\\\\Framework64\\\\v3.5\\\\Microsoft.Common.targets (1001):为引用"....\\\\Contracts\\"指定的项目引用元数据Contracts.csproj" 丢失或具有无效值:Project
由于我在互联网上没有找到很多关于 MSB3107 的信息,所以我想我会在这里发布。
我解决了这个问题,删除了对 Contracts.csproj 的所有引用并将它们与程序引用一起放回去。这很容易解决。
在删除项目 GUID 中的冗余大括号后,我们的解决方案中出现错误。删除 .vs 文件夹(或运行
这可能是由于项目引用的项目 GUID 错误而发生的。如果来自版本控制系统的合并出错,则引用的 ID 可能会损坏。编辑 .csproj 文件以消除错误引用,然后从 Visual Studio 再次添加新引用可以解决此类问题。
将 Xamarin Studio 解决方案转换为 Visual Studio 2017 for Mac 解决方案时出现此错误。
/Library/Frameworks/Mono.framework/Versions/5.0.1/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets(5,5):
错误 MSB3107:引用 "{myproject}.csproj" 的指定项目引用元数据丢失或具有无效值:项目 (MSB3107) ({myproject})
我最终创建了一个全新的解决方案文件 (sln),然后是作为原生 iOS 库的新Backbone csproj 文件。我复制了这些类,并再次手动添加了引用。根本区别似乎是在 Project 标签下的第一个 PropertyGroup 部分的 .csproj 文件中删除这些 XML 条目。
1 2 3 4 5 | <TargetFrameworkIdentifier>Xamarin.iOS</TargetFrameworkIdentifier> <TargetFrameworkVersion>v1.0</TargetFrameworkVersion> <ProductVersion>8.0.30703</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ReleaseVersion>4.0</ReleaseVersion> |
找到并删除这一行:
< Import Project="$(MSBuildExtensionsPath)\\\\\\\\$(MSBuildToolsVersion)\\\\\\\\Microsoft.Common.props" Condition="Exists(\\'$(MSBuildExtensionsPath)\\\\\\\\$( MSBuildToolsVersion)\\\\\\\\Microsoft.Common.props\\')" />
我遇到了这个问题,结果是 scproj 的