
Инструмент для создания файла JScript, который загружает сборку .NET v2 из памяти.
Этот файл является частью DotNetToJScript — инструмента для генерации JScript, который загружает произвольную сборку .NET и класс. Copyright (C) James Forshaw 2017
DotNetToJScript — свободное программное обеспечение: вы можете распространять его и/или изменять на условиях Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 Лицензии, либо (по вашему выбору) любой более поздней версии.
DotNetToJScript распространяется в надежде, что он будет полезен, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. См. Стандартную общественную лицензию GNU для получения подробностей.
Вы должны были получить копию Стандартной общественной лицензии GNU вместе с DotNetToJScript. Если нет, см. http://www.gnu.org/licenses/.
Примечания по использованию:
Это работает только из JScript с полным доверием (очевидно), поэтому должно работать в скриптлетах и т.п. По умолчанию это будет работать только если установлена v2/v3/v3.5. Однако если при сборке выходного файла указать ключ '-ver auto', это также будет работать только на v4+, но это создаст зависимость от WScript.Shell, которая вам может быть не нужна.
Чтобы использовать это, вам нужно создать сборку, нацеленную на .NET 2 (хотя в большинстве случаев можно также использовать 3.5, так как .NET 2 редко встречается установленным изолированно. В сборке реализуйте класс с именем TestClass, который делает что-то, что вы хотите сделать, в открытом конструкторе без параметров.
public class TestClass { public TestClass() { /* Start notepad */ Process.Start("notepad.exe"); } }
Убедитесь, что он открытый. Затем передайте этому инструменту путь к сборке .NET. Если вы пометите класс атрибутом ComVisible, вы даже сможете взаимодействовать с объектом после его создания. Например:
[ComVisible(true)] public class TestClass { public void DoSomething(string arg) { } }
Вы можете изменить имя входного класса, используя ключ -c и добавив имя. Вы также можете заставить инструмент добавить дополнительный код для взаимодействия с объектом, указав параметр -s с путём к текстовому файлу, содержащему дополнительный JScript. Созданный объект называется 'o', поэтому, например, если вы хотели вызвать метод DoSomething, загрузите файл, содержащий:
o.DoSomething("SomeArg");
Режим по умолчанию — вывод файла JScript, который можно выполнить в Windows Scripting Host. Однако если вам нужен скриптлет, передайте либо -m (для скриптлета, который можно использовать из моникера скриптлета), либо -u (для скриптлета, который можно использовать из regsvr32). Вы также можете указать ключ '-l vba' для вывода файла VBA, который должен работать в макросах Office, или '-l vbscript' для VBScript.
Наконец, по умолчанию инструмент выводит в stdout; вы можете выводить напрямую в файл, используя ключ -o.