【问题标题】:Xamarin.iOS build error MSB4096: "ReferenceCopyLocalPaths" does not define a value for metadata "ResolvedFrom"Xamarin.iOS 生成错误 MSB4096:“ReferenceCopyLocalPaths”未定义元数据“ResolvedFrom”的值
【发布时间】:2017-05-18 01:52:23
【问题描述】:

更新 Visual Studio 2017(包括 Xamarin)后,我在几个 Nuget 包上遇到错误,例如:

...\MSBuild\Xamarin\Xamarin.Apple.Sdk.targets(29,5):错误 MSB4096:项目“....nuget\packages\HockeySDK.Xamarin\4.1.3\lib\Xamarin.项目列表“ReferenceCopyLocalPaths”中的 iOS10\HockeySDK.dll 未定义元数据“ResolvedFrom”的值。要使用此元数据,请通过指定 %(ReferenceCopyLocalPaths.ResolvedFrom) 对其进行限定,或确保此列表中的所有项目都为此元数据定义一个值。

该错误仅在为 Xamarin.iOS 构建时发生。为 Android 构建工作正常。

有人知道如何解决这个问题吗?

【问题讨论】:

  • 在 VS2015 上更新到最新版本的 Xamarin 并且遇到相同的错误,但使用 Arc.Support.iOS.dll。尚未找到解决方案。

标签: xamarin.ios visual-studio-2017


【解决方案1】:

通过修改位于 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Xamarin 的 Xamarin.Apple.Sdk.targets 文件,我能够为自己的解决方案解决此问题。我在第 31 行和第 35 行添加了 ReferenceCopyLocalPaths 限定条件。

第 31 行

<FrameworkFile>$([System.String]::new('%(ReferenceCopyLocalPaths.ResolvedFrom)').StartsWith('$(FrameworkPathOverride)').ToString().ToLowerInvariant())</FrameworkFile>

第 35 行

'%(ReferenceCopyLocalPaths.ResolvedFrom)' != 'ImplicitlyExpandDesignTimeFacades' And

【讨论】:

  • 知道这个文件适用于 VS 2015 吗?我似乎找不到 Xaarin.Apple.sdk.targets 文件 =(
  • 它很可能是 Xamarin.iOS.CSharp.targets 或 Xamarin.iOS.Common.targets 文件。错误列表显示了发生错误的目标文件。
  • 这对我也有帮助,谢谢。 @Kyle,我在这里找到了文件:C:\Program Files (x86)\MSBuild\Xamarin\
  • 我想知道 Xamarin 是否会发布一个没有新的停止程序的稳定版本。 :-(
【解决方案2】:

在 2015 年之前,该文件位于 C:\Program Files (x86)\MSBuild\Xamarin。

我们将发布的最终修复是在第 23 行之后添加:

<ResolvedFrom />

所以项目定义组如下所示:

<ItemDefinitionGroup> <ReferenceCopyLocalPaths> <DestinationSubDirectory /> <FrameworkFile /> <ResolvedFrom /> </ReferenceCopyLocalPaths> </ItemDefinitionGroup>

【讨论】:

    猜你喜欢
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多