.net 使用powershell运行dll

h7wcgrx3  于 2023-01-27  发布在  .NET
关注(0)|答案(1)|浏览(170)

这是我的.net代码

namespace MyMathLib
{
    public class Methods
    {
        public Methods()
        {
        }
        public static int Sum(int a, int b)
        {
            return a + b;
        }
        public int Product(int a, int b)
        {
            return a * b;
        }
    }
}

我正在尝试用powershell加载dll

$AssemblyPath = "D:\Visual Studio code\MyMathLib\bin\Debug\net6.0\MyMathLib.dll"
$bytes = [System.IO.File]::ReadAllBytes($AssemblyPath)
[System.Reflection.Assembly]::Load($bytes)
[MyMathLib.Methods]::Sum(10, 2)

它给出了下面的错误. dll位置是确定的..可以请任何人帮助

Unable to find type [MyMathLib.Methods].
At line:4 char:1
+ [MyMathLib.Methods]::Sum(10, 2)
+ ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (MyMathLib.Methods:TypeName) [], RuntimeException
    + FullyQualifiedErrorId : TypeNotFound

如何解决这个问题?“

bq3bfh9z

bq3bfh9z1#

要编写与Powershell的桌面/Windows .NET框架版本以及.NET核心版本兼容的.NET库,请确保库/DLL的目标是.NET标准2.0(而不是.NET 6)。
因此,在VS项目中使用例如

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

</Project>

而不是<TargetFramework>net6.0</TargetFramework>。对于.NET 6. 0,请使用/安装Powershell核心(当前版本是Powershell 7)。

相关问题