在 C# 中使用“using”时,Rider MAUI 中的 Mac M2 上找不到 SDL2-CS

问题描述 投票:0回答:1

我在 C# 中使用 SDL2 读取操纵杆/控制器时遇到问题已经有一段时间了。

我使用 SDL2 进行跨平台开发,使用 MAUI for Mac 和 Windows

我尝试使用brew安装SDL2:

brew install sdl2
安装成功。然后我使用 NuGet 在终端和 Rider NuGet 部分中安装了 SDL-CS,我检查了它已经加载到我的 csproj 文件中,但以下代码在构建时会返回错误:
using SDL2;
当我构建时,我只会得到这个错误:

0>JoystickPage.xaml.cs(1,7): Error CS0246 : The type or namespace name 'SDL2' could not be found (are you missing a using directive or an assembly reference?)
0>------- Finished building project: InfiniteConnect. Succeeded: False. Errors: 1. Warnings: 0

这是基于最少的详细日志记录,诊断甚至没有说明原因,只是构建因一个错误而失败。

我尝试将行添加到我的 csproj 中,例如:


    <ItemGroup>
        <NativeLibrary Include="/opt/homebrew/opt/sdl2/lib/libSDL2.dylib" />
    </ItemGroup>
    <ItemGroup>
        <None Update="/opt/homebrew/opt/sdl2/lib/libSDL2.dylib">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>

但同样没有任何效果,我尝试了其他事情但也没有任何效果,也许我做得不对。

brew --prefix sdl2

简单地返回正确的目录:

/opt/homebrew/opt/sdl2

我添加了

DYLD_LIBRARY_PATH=/opt/homebrew/opt/sdl2/lib:$DYLD_LIBRARY_PATH 
到maccatalyst中的环境变量,这是我用来运行的。

我错过了什么吗?我每次都重新启动 Rider 并进行清理和重建。

编辑: 这是我瞄准图书馆的地方;

    <ItemGroup>
        <PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
        <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
        <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
        <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
        <PackageReference Include="SDL2-CS" Version="2.0.0" />
    </ItemGroup>
c# macos homebrew sdl-2 rider
1个回答
0
投票

您仍然缺少相关信息(具体来说,您要绑定的完整 .Net 框架),但如果我们假设您正在使用 .Net Core,那么您想要的包是

SDL2-CS.NetCore
:

enter image description here

SDL2-CS
则针对旧版 .Net 框架运行:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.