【问题标题】:Class Library (.NET Core) vs PCL in XamarinXamarin 中的类库 (.NET Core) 与 PCL
【发布时间】:2016-10-24 17:37:03
【问题描述】:

我正在使用 .NET Standard,发现奇怪的是,如果我为 .NET Core 类库 (xproj) 和可移植类库 (csharp) 指定了以下 project.json,则只能正确引用后者来自 Xamarin.Android 项目:

{
  "supports": {},
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1"
  },
  "frameworks": {
    "netstandard1.4": {}
  }
}

我可以将两者都添加为参考,dotnet update 按预期工作(或至少没有显示错误消息),但未实现 .NET 核心库:

找不到类型或命名空间

我觉得这很奇怪,因为我希望任何 .NET 标准目标库都能正常工作。我做错了什么还是故意只支持 Xamarin 的 PCL?

【问题讨论】:

    标签: xamarin.android .net-core portable-class-library


    【解决方案1】:

    我假设您有一个用于 Xamarin.Android 项目的 .csproj 和一个用于面向 .NET Standard 的 .NET Core 类库的 .xproj

    相信这个问题可能是因为我们目前拥有不同的项目系统,并且他们每个人都希望在其中找到项目引用的构建程序集。

    解决方法是手动编辑.csproj 以包含具有正确提示路径的引用。例如:

    <Reference Include="SomeOtherClassLibrary">
        <HintPath>..\SomeOtherClassLibrary\bin\$(Configuration)\netstandard1.6\SomeOtherClassLibrary.dll</HintPath>
    </Reference>
    

    您可能还需要手动将 Xamarin.Android 的构建依赖项添加到类库项目中,以确保以正确的顺序构建项目(在解决方案资源管理器 Build Dependencies &gt; Project Dependencies... 中右键单击 Xamarin.Android 项目)。

    总而言之,不是 .NET Standard 目标库不能与 Xamarin 一起使用,或者 Xamarin 仅支持 PCL。这是项目参考和工具当前状态的一个怪癖,我相信会及时改进。

    【讨论】:

    • 非常感谢,这行得通,尽管我认为我会坚持使用 PCL,直到有改进为止。
    猜你喜欢
    • 2016-12-30
    • 2014-08-26
    • 2018-01-11
    • 2023-04-10
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多