Add-Type из cs, который требует ссылки на сборки

У меня есть 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

Поэтому мне интересно, есть ли способ избежать использования выходной сборки?

5
задан Andrey Marchuk 24 November 2011 в 08:42
поделиться