问题是该项目引用了 myget.org 上的“预览”提要,而不是 nuget.org 上的官方发布提要。在项目的 NuGet.Config 文件中,删除引用预览源的行,如下所示:
<add key="ChakraCore" value="https://www.myget.org/F/chakracore-preview/api/v3/index.json" />
在 Visual Studio 2015(或 Xamarin/Visual Studio Mac)项目中,右键单击该项目并选择管理 NuGet 引用。从那里,您可以单击更新选项卡,从列表中选择 ChakraCore,然后单击“更新”。这应该会为您更新 packages.config 和其他文件。请注意,如果您在编辑配置文件时打开了项目,则需要关闭并重新打开项目以获取新设置。在某些情况下,升级可能会留下对先前 1.4.1-preview 包的引用,您需要手动编辑 csproj 文件以摆脱它。
如果您需要在没有 Visual/Xamarin Studio 的情况下进行此更改,您只需编辑几个文本文件。在 packages.config(在 Visual Studio 2015 中)中,将引用 1.4.1-preview 版本的行更改为最新版本(撰写本文时为 1.5.2):
<package id="Microsoft.ChakraCore" version="1.4.1-preview-00010-42060" targetFramework="net46" developmentDependency="true" />
变成
<package id="Microsoft.ChakraCore" version="1.5.2" targetFramework="net46" developmentDependency="true" />
在您项目的 csproj 文件中:
<Import Project="$(SolutionDir)\packages\Microsoft.ChakraCore.1.4.1\build\netstandard1.0\Microsoft.ChakraCore.props" Condition="Exists('$(SolutionDir)\packages\Microsoft.ChakraCore.1.4.1\build\netstandard1.0\Microsoft.ChakraCore.props')" />
变成
<Import Project="$(SolutionDir)\packages\Microsoft.ChakraCore.1.5.2\build\netstandard1.0\Microsoft.ChakraCore.props" Condition="Exists('$(SolutionDir)\packages\Microsoft.ChakraCore.1.5.2\build\netstandard1.0\Microsoft.ChakraCore.props')" />
和
<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.ChakraCore.1.4.1\build\netstandard1.0\Microsoft.ChakraCore.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.ChakraCore.1.4.1\build\netstandard1.0\Microsoft.ChakraCore.props'))" />
变成
<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.ChakraCore.1.5.2\build\netstandard1.0\Microsoft.ChakraCore.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.ChakraCore.1.5.2\build\netstandard1.0\Microsoft.ChakraCore.props'))" />
一般来说,不要在生产项目或其他人将使用的项目模板中引用来自 myget.org 的预览包。它们可以随时删除,安全更新可能不会像官方渠道那样定期发布。