Wie verknüpfe ich eine statische Bibliothek mit der .Net MAUI-Klassenbibliothek und wie verwende ich diese DLL in einem Beispielprojekt?
Erstellen einer .NetMaui-Klassenbibliothek. Dabei füge ich eine statische Dateibibliothek hinzu, die aus C++ erstellt wurde.
Beispiel:
AddByCase
Wrapper.cs-Klasse in der Klassenbibliothek erstellt und auf diese APIs zugegriffen
Beispiel:
const string DllName = "__Internal";
[DllImport(DllName, EntryPoint = "AddByCase", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)] //Entry Point name has to be same name as in .a File
internal static extern long AddByCase(int SequenceNumber, double Quantity, StringBuilder ItemUPC, StringBuilder CaseUPC, double Price, int Pack, int InnerPack, StringBuilder ErrorMessage);
Verknüpfen der .a-Datei im Klassenbibliotheksprojekt mit dem folgenden
Pfad:
Platforms\\iOS\\Lib\\. // This is the path where i have .a file inside the project
Der folgende Code befindet sich in .CSProj
Static
True
Projekt erstellen und DLL erfolgreich erstellen. Während ich diese DLL-Datei im Hauptprojekt verwende, erhalte ich so viele Fehler wie die folgenden. Was fehlt?
like/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/ targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: clang++ mit Code 1 beendet: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: Undefiniert Symbole für Architektur x86_64: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
.dill verlinkt wie unten auf das Hauptprojekt. Lib-File ist der Ordnername, in dem ich .dll-Dateien habe
Lib-File\CSharpLib.dll
AddByCase API ist in der .a-Datei vorhanden, die ich mit nm -C file überprüft habe.a
Gibt es ein Verknüpfungsproblem? Klassenbibliotheksprojekt?
Ich habe versucht, so zu verlinken
Versuchen Sie 1:
Static
True
Versuchen Sie 2:
Im Hauptprojekt verwende ich die DLL, die aus einer Klassenbibliothek wie dieser stammt
Lib-File\CSharpLib.dll
Wie verknüpfe ich eine statische Bibliothek mit der .Net MAUI-Klassenbibliothek und wie verwende ich diese DLL in einem Beispielprojekt? [list] [*] Erstellen einer .NetMaui-Klassenbibliothek. Dabei füge ich eine statische Dateibibliothek hinzu, die aus C++ erstellt wurde. Beispiel: AddByCase
[*]Wrapper.cs-Klasse in der Klassenbibliothek erstellt und auf diese APIs zugegriffen
Beispiel: const string DllName = "__Internal";
[DllImport(DllName, EntryPoint = "AddByCase", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)] //Entry Point name has to be same name as in .a File internal static extern long AddByCase(int SequenceNumber, double Quantity, StringBuilder ItemUPC, StringBuilder CaseUPC, double Price, int Pack, int InnerPack, StringBuilder ErrorMessage);
[*]Verknüpfen der .a-Datei im Klassenbibliotheksprojekt mit dem folgenden
Pfad: Platforms\\iOS\\Lib\\. // This is the path where i have .a file inside the project
Der folgende Code befindet sich in .CSProj
Static True
[*]Projekt erstellen und DLL erfolgreich erstellen. Während ich diese DLL-Datei im Hauptprojekt verwende, erhalte ich so viele Fehler wie die folgenden. Was fehlt?
like/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/ targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: clang++ mit Code 1 beendet: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: Undefiniert Symbole für Architektur x86_64: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
[/list] [b]Umgebung:[/b] [list] [*]Visual Studio-Code: Version: 1.96.2 [*]MacOS: 14.7.1 [*]XCode: 16.2 [*]DotNet-SDK: 8.0. 404 [/list] .dill verlinkt wie unten auf das Hauptprojekt. Lib-File ist der Ordnername, in dem ich .dll-Dateien habe Lib-File\CSharpLib.dll
AddByCase API ist in der .a-Datei vorhanden, die ich mit nm -C file überprüft habe.a Gibt es ein Verknüpfungsproblem? Klassenbibliotheksprojekt? Ich habe versucht, so zu verlinken Versuchen Sie 1:
Static True
Versuchen Sie 2:
Im Hauptprojekt verwende ich die DLL, die aus einer Klassenbibliothek wie dieser stammt Lib-File\CSharpLib.dll
Ich entwickle eine .NET MAUI Blazor -App, die eine Rasierklassenbibliothek (RCL) für gemeinsam genutzte Komponenten und Seiten für das Web, Android und iOS verwendet. Alles funktioniert wie erwartet...
Ich habe mit dem MVVM -Muster an einer .NET -Maui -Anwendung gearbeitet und beginne, die übliche Praxis in Frage zu stellen, iCommand -Eigenschaften in ViewModels zu setzen. Während dies der...
Ich arbeite an einer Bibliothek von .NET 8 Klasse und ich möchte auf iWebHostumvironment zugreifen, um Umgebungsdetails wie ContentrootPath oder EnvironmentName zu erhalten.
Ich arbeite an einer .NET 8-Klassenbibliothek und möchte auf iWebHostEnvironment zugreifen, um Umgebungsdetails wie ContentrootPath oder EnvironmentName zu erhalten.