Hier ist mein Github:
https://github.com/Poolgates/Nature
Leider sind nicht die Standard Server Files drauf, aber mein Code 😉
hier ist mein csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<BaseOutputPath>C:\Users\sasch\Desktop\Projekt\resources\server</BaseOutputPath>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<EnforceCodeStyleInBuild>False</EnforceCodeStyleInBuild>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AltV.Net" Version="16.2.2" />
<PackageReference Include="AltV.Net.Async" Version="16.2.2" />
<PackageReference Include="AltV.Net.Async.CodeGen" Version="16.2.2" />
<PackageReference Include="AltV.Net.CApi" Version="16.2.2" />
<PackageReference Include="AltV.Net.Client" Version="16.2.2" />
<PackageReference Include="AltV.Net.ColShape" Version="16.2.2" />
<PackageReference Include="AltV.Net.EntitySync" Version="1.18.0" />
<PackageReference Include="AltV.Net.EntitySync.ServerEvent" Version="16.2.2" />
<PackageReference Include="AltV.Net.Interactions" Version="16.2.2" />
<PackageReference Include="AltV.Net.Resources.Chat.Api" Version="16.2.2" />
<PackageReference Include="AltV.Net.Shared" Version="16.2.2" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
</ItemGroup>
</Project>
I benutze net6.0 und have als Projekt eine Klassenbibliothek gewählt. Altv ist ein API um einen Gameserver zu errichten. Ich habe hier nichts fehlerhaftes endeckt
Hallo Zusammen,
ich beisse mir gerade die Zähne aus und verstehe nicht, warum ich hier eine FehlerMessage erhalte. Hier meine Ausgangssituation: Um das Single-Responsibility-Prinzip einzuhalten möchte ich gerne in meinen Projekt die Klassen entkoppeln. Dabei habe ich das Nudget: Microsoft.Extension.DependenyInjection installiert.
In meine Solution gibt es die Klasse Charakter sowie die Schnittstelle ICharakter:
using Nature.Models;
namespace Nature.Contracts
{
public interface ICharacter
{
Character GetPlayerCharakter();
void CreateNewCharacter(string charname, int gender);
}
}
using Nature.Contracts;
public class Character : ICharacter
{
// Klassenvariable
private readonly ICharacter? _player;
// Eigenschaften
public string CharName {get; set;}
public int Gender {get; set;}
// Konstruktor
public Character(IClassicPlayer player)
{
_player = player;
}
// Objectverweis
public void CreateNewCharacter(string charname, int gender)
{
this.CharName = charname;
this.gender = gender;
}
Weiterhin habe ich ein DI Container mit IOC eingerichtet in eine separate Klasse:
using Microsoft.Extensions.DependencyInjection;
using Nature.Contracts;
using Nature.Models;
namespace Nature.Services
{
internal class ObjectProvider
{
public static void CreateObjects()
{
IServiceCollection collection = new ServiceCollection();
collection.AddTransient<ICharacter, Character>();
IServiceProvider provider = collection.BuildServiceProvider();
Character character = provider.GetService<Character>()!;
character.CreateNewCharacter("Sotti", 0);
}
}
}
Nun bekomme ich folgenden Fehler und verstehen diesen nicht. Was mache ich falsch. In der Solution gibt es keine Fehler. Während der Laufzeit wird eigentlich ein Objekt Character eröffnet, aber ich komme dann folgenden Fehler:
System.IO.FileNotFoundException: "Could not load file or assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. Das System kann die angegebene Datei nicht finden."
Kann mir einer helfen?
VIele Grüße
Poolgate