初始化新的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上。
发布于 2017-07-06 03:39:44
问题是该项目引用的是myget.org上的“预览”提要,而不是nuget.org上的官方发布提要。在项目的NuGet.Config文件中,删除引用预览提要的行,如下所示:
<add key="ChakraCore" value="https://www.myget.org/F/chakracore-preview/api/v3/index.json" />
在Visual Studio2015(或Xamarin/Visual Studio Mac)项目中,右键单击项目并选择Manage NuGet References。在那里,您可以单击更新选项卡,从列表中选择ChakraCore,然后单击“更新”。这应该会为您更新packages.config和其他文件。请注意,如果您在编辑配置文件时打开了项目,则需要关闭并重新打开项目以使新设置生效。在某些情况下,升级可能会留下对以前的1.4.1预览包的引用,您需要手动编辑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的预览包。它们可以随时删除,并且安全更新可能不会像官方渠道那样定期在那里发布。
发布于 2017-07-06 03:37:04
看起来预览Microsoft.ChakraCore NuGet包已从MyGet feed中删除。
主NuGet.org站点只有Microsoft.ChakraCore NuGet package的稳定版本。
因此,您只需编辑对该包的任何引用并使用已发布的版本。Microsoft.ChakraCore版本1.4.4应该可以工作。
在React原生GitHub站点上也有关于这一点的open issue。
https://stackoverflow.com/questions/44933276
复制相似问题