Code: Select all
PS> dotnet new classlib --output Lib
PS> dotnet new psmodule --output PsModule
PS> dotnet new sln
PS> dotnet sln add Lib
PS> dotnet sln add PsModule
- öffnete die Lösung und fügte einen Verweis auf Lib hinzu< /code> in PsModule.
hat das Zielframework im PsModule CSPROJ von netstandard2.0 auf net9.0< geändert /li>
Code: Select all
Lib
Code: Select all
namespace Lib;
public static class Class1
{
public static string GetString()
{
return "FROM DEPENDENCY";
}
}
Code: Select all
PsModule
Code: Select all
using System;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using Lib;
namespace PsModule
{
[Cmdlet(VerbsDiagnostic.Test,"SampleCmdlet")]
public class TestSampleCmdletCommand : PSCmdlet
{
// This method will be called for each input received from the pipeline to this cmdlet; if no input is received, this method is not called
protected override void ProcessRecord()
{
WriteObject(Class1.GetString());
}
}
}
Code: Select all
PS>New-ModuleManifest PsModule.psd1
Code: Select all
@{
// ...
RootModule = 'PsModule.dll'
RequiredAssemblies = @(
"Lib.dll"
)
CmdletsToExport = @(
"Test-SampleCmdlet"
)
//..
}
Code: Select all
PS> import-module .\PsModule.psd1
PS> test-sampleCmdlet
Test-SampleCmdlet: Datei oder Assembly konnte nicht geladen werden ' System.Runtime, Version=9.0.0.0, Kultur=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Das System kann die angegebene Datei nicht finden.
Was läuft hier schief und wie kann ich es beheben?
BEARBEITEN
Ich konnte es zum Laufen bringen, indem ich alle Projekte auf .NET 8 heruntergestuft habe. Ich bin mir nicht sicher, warum es mit .NET 9 nicht funktioniert. Wenn jemand eine Antwort geben kann Eine gute Erklärung dafür, warum es mit .NET 9 nicht funktioniert, wäre das sei großartig.