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
我有两个问题:
- 以上 3rdPartyNETLib 是通过右键单击 Dependencies 添加的
MyUWPClassLibt 的部分 > 添加参考 > 浏览 > 浏览到硬盘驱动器上的库并 select 添加它。但这只是复制文件路径,将我的本地驱动器 Windows 文件路径留在 .csproj 中。显然,这是个问题,因为那不是其他人的路径,尤其是在 MacOS 上。我该如何解决这个问题?我没看到 "embedded resource" 之类的东西?
- 我想从 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)
我的 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
我有两个问题:
- 以上 3rdPartyNETLib 是通过右键单击 Dependencies 添加的 MyUWPClassLibt 的部分 > 添加参考 > 浏览 > 浏览到硬盘驱动器上的库并 select 添加它。但这只是复制文件路径,将我的本地驱动器 Windows 文件路径留在 .csproj 中。显然,这是个问题,因为那不是其他人的路径,尤其是在 MacOS 上。我该如何解决这个问题?我没看到 "embedded resource" 之类的东西?
- 我想从 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)