Visual Studio 中使用(完整)用户路径的 NuGet 依赖关系参考链接
NuGet Dependency Reference links using (full) User Path in Visual Studio
出于某种原因,在我的 iOS 项目中...使用完整目录路径的 SkiaSharp NuGet 库(参考)链接。
- 这是什么原因造成的?
- 我该如何解决?
...其他项目不这样做。
其实,你已经在你的项目中安装了这个包,你遇到的警告是nuget包本身的问题,你应该联系作者。你不是唯一面临这个问题的人。其他工作人员也有这种异常行为。
我也遇到了这个问题,实际上当你在你的xxx.csproj
文件中有这个节点时
<PackageReference Include="SkiaSharp">
<Version>2.80.2</Version>
</PackageReference>
表示您已经成功安装了SkiaSharp nuget包。
真正的问题是这个文件
C:\Users\xxx\.nuget\packages\skiasharp.80.2\build\xamarinios1.0\SkiaSharp.targets
和
C:\Users\xxx\.nuget\packages\skiasharp.80.2\buildTransitive\xamarinios1.0\SkiaSharp.targets
由于某些原因,NativeReference 无法被 MSBuild 识别。挺奇怪的。
无法解析$(_SkiaSharpNativeLibraryRootDir)
。
进一步调查,发现Vs上有问题,NativeReference节点无法识别$(xxx)
msbuild 属性值。当我输入它的完整路径时,它可以正常工作。
我也reported the issue on our DC Forum,如果你对它感兴趣,你可以给它投票,如果我没有详细描述这个问题,你可以添加任何评论,这样它会得到更多微软的关注
=====================
所以你必须联系我报告下的包作者和微软团队link。
由于这个过程可能需要很长时间,作为建议,您可以尝试以下步骤,虽然复杂但可以解决:
1) 删除C:\Users\xxx\.nuget\packages\skiasharp.80.2\build\xamarinios1.0\SkiaSharp.targets
下的这些节点
和
C:\Users\xxx\.nuget\packages\skiasharp.80.2\buildTransitive\xamarinios1.0\SkiaSharp.targets
:
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<NativeReference Include="$(_SkiaSharpNativeLibraryRootDir)libSkiaSharp.framework" Kind="Framework" />
</ItemGroup>
2) 输入 ios 应用程序的 xxx.csproj
文件并添加以下内容:
<ItemGroup>
<NativeReference Include="C:\Users\xxx\.nuget\packages\skiasharp.80.2\build\xamarinios1.0\libSkiaSharp.framework" Kind="Framework"></NativeReference>
</ItemGroup>
3) 之后,关闭 VS 并重新启动项目以启用更改。
出于某种原因,在我的 iOS 项目中...使用完整目录路径的 SkiaSharp NuGet 库(参考)链接。
- 这是什么原因造成的?
- 我该如何解决?
...其他项目不这样做。
其实,你已经在你的项目中安装了这个包,你遇到的警告是nuget包本身的问题,你应该联系作者。你不是唯一面临这个问题的人。其他工作人员也有这种异常行为。
我也遇到了这个问题,实际上当你在你的xxx.csproj
文件中有这个节点时
<PackageReference Include="SkiaSharp">
<Version>2.80.2</Version>
</PackageReference>
表示您已经成功安装了SkiaSharp nuget包。
真正的问题是这个文件
C:\Users\xxx\.nuget\packages\skiasharp.80.2\build\xamarinios1.0\SkiaSharp.targets
和
C:\Users\xxx\.nuget\packages\skiasharp.80.2\buildTransitive\xamarinios1.0\SkiaSharp.targets
由于某些原因,NativeReference 无法被 MSBuild 识别。挺奇怪的。
无法解析$(_SkiaSharpNativeLibraryRootDir)
。
进一步调查,发现Vs上有问题,NativeReference节点无法识别$(xxx)
msbuild 属性值。当我输入它的完整路径时,它可以正常工作。
我也reported the issue on our DC Forum,如果你对它感兴趣,你可以给它投票,如果我没有详细描述这个问题,你可以添加任何评论,这样它会得到更多微软的关注
=====================
所以你必须联系我报告下的包作者和微软团队link。
由于这个过程可能需要很长时间,作为建议,您可以尝试以下步骤,虽然复杂但可以解决:
1) 删除C:\Users\xxx\.nuget\packages\skiasharp.80.2\build\xamarinios1.0\SkiaSharp.targets
和
C:\Users\xxx\.nuget\packages\skiasharp.80.2\buildTransitive\xamarinios1.0\SkiaSharp.targets
:
<ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' ">
<NativeReference Include="$(_SkiaSharpNativeLibraryRootDir)libSkiaSharp.framework" Kind="Framework" />
</ItemGroup>
2) 输入 ios 应用程序的 xxx.csproj
文件并添加以下内容:
<ItemGroup>
<NativeReference Include="C:\Users\xxx\.nuget\packages\skiasharp.80.2\build\xamarinios1.0\libSkiaSharp.framework" Kind="Framework"></NativeReference>
</ItemGroup>
3) 之后,关闭 VS 并重新启动项目以启用更改。