Xamarin.Forms - 参考 UWP Class Lib 项目类型与来自 UWP 头项目的第 3 方 dll 库

Xamarin.Forms - Reference UWP Class Lib Project type with 3rd party dll lib from UWP head project

我的 Xamarin.Forms 解决方案包含 Android、iOS 和 UWP 的 3 个主要项目。

我还有一个 Windows 通用 Class 库项目 MyUWPClassLib,它的依赖项中包含一个第三方 .NET 库节之类的。这不是 Nuget,而只是我们从供应商处使用的第 3 方库):

|-- MySolution.sln
  |-+ MyDroid
  |-+ MyiOS
  |-+ MyUWP
    |-ClassA (cannot reference to 3rdPartyNETLib)
  |-- MyUWPClassLib
    |-- Dependecies
      |-+ 3rdPartyNETLib

我有两个问题:

  1. 以上 3rdPartyNETLib 是通过右键单击 Dependencies 添加的 MyUWPClassLibt 的部分 > 添加参考 > 浏览 > 浏览到硬盘驱动器上的库并 select 添加它。但这只是复制文件路径,将我的本地驱动器 Windows 文件路径留在 .csproj 中。显然,这是个问题,因为那不是其他人的路径,尤其是在 MacOS 上。我该如何解决这个问题?我没看到 "embedded resource" 之类的东西?
  2. 我想从 MyUWP 项目中引用我的 3rdPartyNETLib,但我不知道该怎么做。我可以从 MyUWPClassLib 中引用它,但不能从 MyUWP head 项目中引用它。我尝试在 MyUWPClassLib 中添加对 MyUWPClassLib 的引用,但这仍然不允许我在 MyUWPClassLib 中引用库。我该怎么做?

阅读有关此的 MS 文档(https://docs.microsoft.com/en-us/visualstudio/ide/how-to-add-or-remove-references-by-using-the-reference-manager?view=vs-2019 也不是很有帮助

要解决#1,我认为唯一的方法是向项目添加一个新文件夹,如 'Libs' 文件夹,然后将第 3 个部分库(注意这不是 Nuget 包)复制到这个新文件夹中。然后在 VS 中,右键单击 Libs 文件夹 > 添加 > 现有项并导航到第 3 方库。这将在您的项目结构中显示该库。

为了解决 #2,我无法做到,我们只是将 类 移动到 MyUWPClassLib,然后能够从那里的 类 引用 3rdPartyNETLib。

所以,项目现在看起来像:

|-- MySolution.sln
  |-+ MyDroid
  |-+ MyiOS
  |-+ MyUWP
  |-- MyUWPClassLib
    |-+ Dependecies
    |-- Libs
      |-+ 3rdPartyNETLib
    |--ClassA (now can reference 3rdPartyNETLib)