gpt4 book ai didi

powershell - 来自 cs 的 Add-Type,需要引用程序集

转载 作者:行者123 更新时间:2023-12-02 22:11:00 26 4
gpt4 key购买 nike

我有一个带有非常简单代码的 cs 文件:

using Ionic.Zip;
public static class Helper
{
public static ZipFile GetNewFile(string fileName)
{
return new ZipFile(fileName);
}
}

它需要 Ionic.Zip 程序集。我想将此类型添加到我的 powershell 中,如下所示:
cd c:\pst
Add-Type -Path "2.cs" -ReferencedAssemblies "Ionic.Zip.dll"
$var = [Helper]::GetNewFile("aaa")

当我这样做时,它给了我:
The following exception occurred while retrieving member "GetNewFile": "Could not load file or assembly 'Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c' or one of its dependencies. The located assembly'
s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)"

它似乎在某个临时位置编译了程序集,但在那里找不到 Ionic.Zip。

但是,如果指定输出程序集然后添加此程序集,它会起作用:
cd c:\pst
Add-Type -Path "2.cs" -ReferencedAssemblies "Ionic.Zip.dll" -OutputAssembly "T.dll"
Add-Type -Path "T.dll"

$var = [Helper]::GetNewFile("aaa")
$var.AlternateEncoding

所以我想知道是否有办法避免使用输出程序集?

最佳答案

在 Powershell v3 CTP1 中,您可以解析 zip 库的完整路径(全名)并引用:

$ziplib = (get-item ionic.zip.dll).fullname
[void][reflection.assembly]::LoadFrom($ziplib)
Add-Type -Path "2.cs" -ReferencedAssemblies $ziplib
$var = [Helper]::GetNewFile("aaa")
$var.AlternateEncoding

关于powershell - 来自 cs 的 Add-Type,需要引用程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8254188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com