Ребят помогите разобраться в чем тут соль? В общем есть скрипт приблизительно вот такого содержания:
$folderBrowserDialog1 = New-Object System.Windows.Forms.FolderBrowserDialog;
$Button1 = New-Object System.Windows.Forms.Button;
$textBox1 = New-Object System.Windows.Forms.TextBox;
$checkBox1 = New-Object System.Windows.Forms.CheckBox;
$label1 = New-Object System.Windows.Forms.Label;
$textBox2 = New-Object System.Windows.Forms.TextBox;
$label2 = New-Object System.Windows.Forms.Label;
$listBox1 = New-Object System.Windows.Forms.ListBox;
$label3 = New-Object System.Windows.Forms.Label;
$listBox2 = New-Object System.Windows.Forms.ListBox;
$label4 = New-Object System.Windows.Forms.Label;
$label5 = New-Object System.Windows.Forms.Label
$Button1.Location = New-Object System.Drawing.Point(430, 38);
$Button1.Name = "Button1";
$Button1.Size = New-Object System.Drawing.Size(75, 23);
$Button1.TabIndex = 0;
$Button1.Text = "Папка";
$Button1.UseVisualStyleBackColor = $true;
....
В общем скрипт выводит на экран форму для ввода данных пользователя.
Пишу его в PowerGUY Script Editor, где он без проблем отрабатывается. В PowerShell ISE он так же прекрасно работает, причем как из области редактирования скриптов так и из консльной области.
Но когда я запускаю непосредственно оболочку PowerShell и ввожу команду C:\MyScript.ps1 выходит следующее:
New-Object : Не удается найти тип [System.Windows.Forms.FolderBrowserDialog]: убедитесь в том, что сборка, содержащая этот тип, загружена.
И так на каждую строчку где используются объекты.
Может быть нужно както явно укзать использование этого типа, например через Add-type?
в общем если есть какие соображения или ссылки на этот счет буду весьма благодарен.
OS Windows7 Ultimate
PowerShell 2.0
Добавлено: 4 часа жесткого серфинга и вот что удалось найти :
http://technet.microsoft.com/en-us/library/ff730941.aspx Исходя из этого добавил в скрипт верхние две строчки:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
и все пошло на ура.