初始化新的React Native Windows WPF项目时,会发生以下错误:

NuGet Package restore failed for project Native: Unable to find version '1.4.1-preview-00010-42060' of package 'Microsoft.ChakraCore'.https://www.myget.org/F/chakracore-preview/api/v3/index.json: Package 'Microsoft.ChakraCore.1.4.1-preview-00010-42060' is not found on source 'https://www.myget.org/F/chakracore-preview/api/v3/index.json'.https://api.nuget.org/v3/index.json: Package 'Microsoft.ChakraCore.1.4.1-preview-00010-42060' is not found on source 'https://api.nuget.org/v3/index.json'.

如果创建一个独立项目并添加相同的NuGet包引用,即使在Xamarin Studio Mac上,也会出现相同的错误。

最佳答案

问题在于该项目引用的是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预览版本的行更改为最新版本(撰写本文时为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的预览包。可以随时删除它们,并且安全更新可能不会以与官方渠道相同的规律在此处发布。

08-26 15:26