在 JetBrains Rider 中找不到目标框架

Posted

技术标签:

【中文标题】在 JetBrains Rider 中找不到目标框架【英文标题】:No target framework found in JetBrains Rider 【发布时间】:2018-03-19 22:16:26 【问题描述】:

我想在 Linux (Ubuntu 16 LTS) 上使用 JetBrains Rider 创建 Xamarin.Forms 项目。

我知道,Xamarin 不支持 Linux,但 JetBrains 表示可以使用 Rider 在 Linux 上开发 Xamarin 应用程序。

所以在安装 dotnet SDK for Linux 之后,我想创建 Xamarin.Forms 项目,正如您在下面的 picture 上看到的(Rider 的屏幕截图),我选择的平台是 Multiplatform,类型是 Xamarin.Forms 和共享代码是可移植类库。

Screenshot of Rider

我收到错误“在这台机器上找不到目标框架”和“在这台机器上找不到可移植的配置文件”。

如果我选择平台ios/macOS/tvOS/watchOS,它会创建项目没有问题,我只有在创建android或多平台项目时才会出现问题。

【问题讨论】:

“JetBrains 表示可以使用 Rider 在 Linux 上开发 Xamarin 应用程序。”我认为 JetBrains 不会有这种说法。如果他们确实想要支持,他们必须投入比应有的更多的努力。 【参考方案1】:

1.) 确保您已从此处安装了常规的 mono:http://www.mono-project.com/download/

2.) 从这里下载xamarin-android/xamarin.android-oss_<version>.orig.tar.bz2:https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-linux/lastSuccessfulBuild/Azure/

3.) 解压到/usr/lib/xamarin.android-oss_<version>/

4.) 这样做:

cd /path/to/xamarin.android-oss*/
sudo cp -r bin/Debug/lib/xamarin.android/* /usr/lib/mono
sudo mkdir -p /usr/lib/mono/xamarin-android/bin/
sudo cp -r bin/Debug/bin/* /usr/lib/mono/xamarin-android/bin/

5.) 创建一个 Xamarin 项目(我使用的是 JetBrains Rider)

6.) 将此属性组添加到您的 .csproj 文件中:

<PropertyGroup Condition=" '$(OS)' == 'Unix' ">
    <MonoAndroidBinDirectory>/usr/lib/mono/xamarin-android/bin</MonoAndroidBinDirectory>
    <AndroidSdkDirectory>$(ANDROID_SDK_PATH)</AndroidSdkDirectory>
    <AndroidNdkDirectory>$(ANDROID_NDK_PATH)</AndroidNdkDirectory>

    <TargetFrameworkRootPath>/usr/lib/mono/xbuild-frameworks/</TargetFrameworkRootPath>
</PropertyGroup>

7.) 确保您的 ANDROID_SDK_PATHANDROID_NDK_PATH 环境变量设置正确。

为我工作。

参考:https://github.com/0xFireball/xamarin-android-linux/blob/master/rider-setup.md

【讨论】:

以上是关于在 JetBrains Rider 中找不到目标框架的主要内容,如果未能解决你的问题,请参考以下文章

Jetbrains Rider 中的启动项目选项

如何在 Jetbrains Rider 中构建 Android APK

如何阻止 Jetbrains Rider 在 macOS 上的 ALT-9 上打开侧面板

找不到 JetBrains Rider Entity 框架工具

Jetbrains Rider:[MSB4057] 项目中不存在目标“构建”

JetBrains Rider 以 4.5 框架为目标,没有切换到 4.7 的选项