Xamarin.Forms-UWP头项目中的带有第三方dll库的参考UWP类库项目类型

时间:2019-05-17 22:40:57

标签: xamarin.forms xamarin.uwp

我有Xamarin.Forms解决方案,其中包含3个针对Android,iOS和UWP的项目。

我还有一个Windows通用类库项目 MyUWPClassLib ,该类在其“依赖项”部分中包含一个第三方.NET库。这不是Nuget,而只是我们可以从供应商处使用的第3方库):

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

我有2个问题:

  1. 在3rdPartyNETLib上方通过右键单击Dependencies添加 MyUWPClassLibt>添加参考>浏览>浏览到硬盘驱动器上的库并选择要添加的库部分。但这只是复制文件路径,而将我的本地驱动器Windows文件路径保留在.csproj中。显然,这是有问题的,因为这不是其他人所拥有的路径,尤其是在MacOS上。我该如何解决这个问题?我没有看到类似“嵌入式资源”之类的东西?
  2. 我想引用MyUWP项目中的3rdPartyNETLib,但我不知道该怎么做。我可以从MyUWPClassLib引用它,但不能从MyUWP头项目引用它。我尝试在MyUWP中添加对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 个答案:

答案 0 :(得分:0)

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

要解决第二个问题,我不能,我们只是将类移到MyUWPClassLib上,然后能够从那里的这些类中引用3rdPartyNETLib。

因此,该项目现在看起来像:

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