Class 库 (.NET Core) 与 Xamarin 中的 PCL
Class Library (.NET Core) vs PCL in Xamarin
我正在使用 .NET Standard 并发现奇怪的是,如果我为 .NET Core class 库 (xproj) 和便携式 Class 指定了以下 project.json库 (csharp),只有后者可以从 Xamarin.Android 项目中正确引用:
{
"supports": {},
"dependencies": {
"NETStandard.Library": "1.6.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1"
},
"frameworks": {
"netstandard1.4": {}
}
}
我可以将两者都添加为参考,dotnet update
按预期工作(或至少没有显示错误消息),但未实现 .NET 核心库:
type or namespace could not be found
我觉得这很奇怪,因为我希望任何 .NET 标准目标库都能正常工作。我是做错了什么还是故意只从 Xamarin 支持 PCL?
我假设您有一个 .csproj
用于 Xamarin.Android 项目和一个 .xproj
用于您的 .NET Core class 库,它以 .NET Standard 为目标。
我相信这个问题可能是因为我们目前拥有不同的项目系统,并且每个系统都希望在其中找到构建的程序集以供项目参考。
解决方法是手动编辑 .csproj
以包含具有正确提示路径的引用。例如:
<Reference Include="SomeOtherClassLibrary">
<HintPath>..\SomeOtherClassLibrary\bin$(Configuration)\netstandard1.6\SomeOtherClassLibrary.dll</HintPath>
</Reference>
您可能还需要手动将 Xamarin.Android 的构建依赖项添加到 class 库项目,以确保项目以正确的顺序构建(右键单击 Xamarin.Android解决方案资源管理器中的项目 Build Dependencies > Project Dependencies...
).
总而言之,并不是说 .NET Standard 目标库不能与 Xamarin 一起工作,也不是说 Xamarin 只支持 PCL。这是项目参考和工具当前状态的一个怪癖,我相信它会及时改进。
我正在使用 .NET Standard 并发现奇怪的是,如果我为 .NET Core class 库 (xproj) 和便携式 Class 指定了以下 project.json库 (csharp),只有后者可以从 Xamarin.Android 项目中正确引用:
{
"supports": {},
"dependencies": {
"NETStandard.Library": "1.6.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1"
},
"frameworks": {
"netstandard1.4": {}
}
}
我可以将两者都添加为参考,dotnet update
按预期工作(或至少没有显示错误消息),但未实现 .NET 核心库:
type or namespace could not be found
我觉得这很奇怪,因为我希望任何 .NET 标准目标库都能正常工作。我是做错了什么还是故意只从 Xamarin 支持 PCL?
我假设您有一个 .csproj
用于 Xamarin.Android 项目和一个 .xproj
用于您的 .NET Core class 库,它以 .NET Standard 为目标。
我相信这个问题可能是因为我们目前拥有不同的项目系统,并且每个系统都希望在其中找到构建的程序集以供项目参考。
解决方法是手动编辑 .csproj
以包含具有正确提示路径的引用。例如:
<Reference Include="SomeOtherClassLibrary">
<HintPath>..\SomeOtherClassLibrary\bin$(Configuration)\netstandard1.6\SomeOtherClassLibrary.dll</HintPath>
</Reference>
您可能还需要手动将 Xamarin.Android 的构建依赖项添加到 class 库项目,以确保项目以正确的顺序构建(右键单击 Xamarin.Android解决方案资源管理器中的项目 Build Dependencies > Project Dependencies...
).
总而言之,并不是说 .NET Standard 目标库不能与 Xamarin 一起工作,也不是说 Xamarin 只支持 PCL。这是项目参考和工具当前状态的一个怪癖,我相信它会及时改进。