Regasm exe не является внутренней или внешней командой исполняемой программой или пакетным файлом
В командной строке введите следующее.
Синтаксис
Параметры
В параметрах командной строки средства Regasm.exe прописные и строчные буквы не различаются. Достаточно указать начало параметра, позволяющее однозначно его определить. Например, /n эквивалентно /nologo, а /t:outfile.tlb эквивалентно /tlb:outfile.tlb.
Примечания
Можно не вносить изменения непосредственно в реестр, а создать REG-файл с записями реестра при помощи параметра /regfile. Чтобы внести изменения в реестр компьютера, импортируйте REG-файл в реестр с помощью редактора реестра (средства Regedit.exe). REG-файл не содержит обновлений реестра, которые могут выполняться пользовательскими функциями реестра. Параметр /regfile порождает записи реестра только для управляемых классов. Он не создает записи для объектов TypeLibID и InterfaceID .
Если задан параметр /tlb, средство Regasm.exe создает и регистрирует библиотеку типов, описывающую типы, которые содержатся в сборке. Regasm.exe помещает созданные библиотеки типов в текущий рабочий каталог или в каталог выходных файлов. Если сборка ссылается на другие сборки, то при создании библиотеки ее типов, возможно, будет создано сразу несколько библиотек типов. Библиотека типов позволяет предоставлять сведения о типах средствам разработки, таким как Visual Studio. Не используйте параметр /tlb, если регистрируемая сборка была создана программой импорта библиотек типов (Tlbimp.exe). Невозможно экспортировать библиотеку типов из сборки, которая была импортирована из библиотеки типов. Параметр /tlb дает тот же результат, что и программа экспорта библиотек типов (Tlbexp.exe) и Regasm.exe, за исключением того, что Tlbexp.exe не регистрирует создаваемые библиотеки типов. Если для регистрации библиотеки типов вы используете параметр /tlb, для отмены регистрации можно использовать параметр /tlb с параметром /unregister. При указании обоих параметров будет отменена регистрация библиотеки типов и записей интерфейса, что может существенно очистить реестр.
При регистрации сборки для использования в COM средство Regasm.exe добавляет записи в реестр локального компьютера. Точнее, в этом случае создаются зависящие от версии разделы реестра, которые позволяют запускать на одном компьютере несколько версий одной сборки одновременно. Когда сборка регистрируется в первый раз, создается один раздел верхнего уровня для сборки и уникальный подраздел для конкретной версии. При регистрации каждой новой версии сборки Regasm.exe создает подраздел для этой новой версии.
Например, предположим, что вы регистрируете управляемый компонент myComp.dll версии 1.0.0.0 для использования в COM. Позже вы регистрируете myComp.dll версии 2.0.0.0. Вы определяете, что все клиентские приложения COM на компьютере используют myComp.dll версии 2.0.0.0 и решаете отменить регистрацию myComponent.dll версии 1.0.0.0. Эта схема реестра позволяет отменить регистрацию myComp.dll версии 1.0.0.0, поскольку удаляется только подраздел версии 1.0.0.0.
Зарегистрировав сборку с помощью средства Regasm.exe, можно установить ее в глобальном кэше сборок, тогда ее сможет активировать любой COM-клиент. Если сборку будет активировать только одно приложение, ее можно поместить в каталог этого приложения. Использование параметра /CodeBase является альтернативой использованию глобального кэша сборок. Однако расположение сборки во время регистрации записывается глобально, и активация завершится ошибкой, если сборка будет перемещена. Если сборка не найдена с помощью проверки, параметр /CodeBase загрузит сборку в контексте, расположенном в загрузе, с дополнительными соображениями, описанными в разделе .
Примеры
Следующая команда регистрирует все открытые классы, содержащиеся в библиотеке myTest.dll .
Следующая команда создает файл myTest.reg , который содержит все необходимые записи реестра. Эта команда не обновляет реестр.
Следующая команда регистрирует все открытые классы, содержащиеся в myTest.dll , а также создает и регистрирует библиотеку типов myTest.tlb , в которой содержатся определения всех открытых типов, описанных в myTest.dll .
дает regasm не распознается как внутренняя или внешняя команда.
Так я понял, что мне нужно задать путь к regasm.exe в переменной окружения.
для какой переменной мне нужно установить путь для запуска regasm, как описано выше?
в командной строке:
Как Cheeso сказал:
вам не нужен каталог на вашем пути. Вы можете поставить его на свой путь, но вам не нужно этого делать. Если вы вызываете regasm редко или вызываете его из пакетного файла, вы можете найти, что проще просто вызвать regasm через полное имя пути на exe, например:
не нужно - каталог на вашем пути. Вы можете поставить его на свой путь, но вам не нужно этого делать.
Если вы вызываете regasm редко или вызываете его из пакетного файла, вы можете найти, что проще просто вызвать regasm через полное имя пути на exe, например:
Я использую это как событие после сборки в Visual Studio:
в зависимости от версии Visual Studio вместо этого используйте следующие переменные среды:
- Visual Studio 2008: VS90COMNTOOLS
- Visual Studio 2010: VS100COMNTOOLS
- Visual Studio 2012: VS110COMNTOOLS
- Visual Studio 2013: VS120COMNTOOLS
- Visual Studio 2015: VS140COMNTOOLS
- Visual Studio 2017: VS150COMNTOOLS
Я использую следующее в пакетном файле:
вне файла bat (т. е. командной строки), просто используйте %a вместо %%a
для 64-разрядной RegAsm.exe вам нужно будет найти его где-то так:
перетаскивая dll на "regasm", вы можете зарегистрировать его. Вы можете открыть два окна "Window Explorer". Один будет содержать dll, которую вы хотите зарегистрировать. 2-е окно будет расположение приложения "regasm". Прокрутите вниз в обоих окнах, чтобы у вас был вид как dll, так и "regasm". Это помогает уменьшить размер двух окон, чтобы они были бок о бок. Не забудьте перетащить dll через "regasm", который помечен как "приложение". Есть несколько файлов 'regasm' но вам нужно только приложение.
выполнить только 1 из приведенных ниже
Как только команда работает, пропустите остальные/ ниже к ней:
только если вы столкнулись с проблемами, используйте старую версию ' v2.0.50727':
только если вы построили myTest.dll только для 64bit, используйте путь "Framework64":
Примечание: 64-разрядные встроенные библиотеки DLL не будут работать на 32-разрядной платформе.
' php.exe ' не распознается как внутренняя или внешняя команда, исполняемой программой или пакетным файлом.
почему эта ошибка возникает, даже если я добавил PHP в переменные среды?
мой путь переменной среды показан ниже:
C:Program файлыNVIDIA CorporationPhysXобщие;C:Program ФайлыCommon папку общая папкаWindows видео;C:Program файлыПК . ФайлыQTSystem;A:xamppphpphp - . exe
Я использую Windows 7.
Я думаю, вам нужно изменить его на A:\xampp\php\ и просто оставьте его там, затем он будет искать в каталоге файл, также: вы пытались вызвать только php вместо php.exe и проверьте правильность каталога.
переменная среды PATH должна содержать только пути, а не имена файлов.
Это очень легко сделать
Вам также нужно добавить php.exe
добавление этого пути:
клавиша Windows + пауза
нажмите на Advance system settings
щелкните переменная окружения
Часть системных переменных - > путь - > редактировать и добавить
C:\wamp\bin\php\php5.3.8;
закройте приглашение cmd, если его открыть
Все кончено!
просмотр над снимком экрана для настройки переменной среды в окне 7
Примечание: - после установки переменной окружающей среды, пожалуйста, перезагрузите компьютер, то его будет работать нормально
не должна ли последняя часть быть: C:\xampp\php\ ? Если вы не переназначили свои диски, A-это дискета. :)
кроме того, вам нужно указать папку, а не сам exe-файл.
в моем случае я использую Bitnami Ruby Stack apache Web server,
- нажата клавиша Windows + кнопка паузы / перерыва
- нажмите дополнительные системные настройки
- Нажмите Кнопку Переменные Среды
- В разделе системные переменные > изменить переменную пути путем добавления C:\Bitnami\rubystack-1.9.3-24\php
- нажмите Ok, чтобы закрыть окно переменной среды
закройте командную строку, если открыть
*(перейти к 7. к подтвердите, установлен ли php)
установите PHP как переменную среды из системы, как показано ниже, чтобы запустить ее из CMD
Если вы установили WAMP server, то ваш путь может отличаться. Например, я установил WAMP и путь к моему php.exe оказалось:
чтобы заставить его работать, я ввел следующий путь в переменную PATH системных переменных:
после этого, я запустила командную строку и все работало нормально.
в моем случае путь к среде C:\ProgramData\Drush\;C:\Program Files (x86)\Drush\Php; и это работает для меня.
Если я просто добавьте C:\xampp\php\ dint работа для меня.
Я надеюсь, что если кто-то сталкивается с этой проблемой, можно попробовать это предложение.
Причины ошибки «Не является внутренней или внешней командой» при выполнении команд в командной строке Windows 10 и Windows 11
Для того, чтобы понять суть ошибки, давайте рассмотрим, что происходит при выполнении команды в командной строке, в качестве примера будем использовать такой код:
- В случае, если «команда» является собственной встроенной командой консоли (в качестве примера — cls), она выполняется с заданными параметрами.
- Если «команда» — это какой-то файл .exe, .cmd, .bat или иной, например, pip, python или adb, выполняется попытка его запуска из расположения, где запущена командная строка (выделено на изображении ниже) или из расположений, добавленных в системную переменную PATH (о которой поговорим подробнее далее). При удачном запуске и правильно переданных параметрах команда выполняется.
Отсюда следуют наиболее распространённые причины появления ошибки при выполнении команды:
- Самая распространённая причина — отсутствие исполняемого файла в папке, где запущена командная строка и в папках, содержащихся в PATH.
- Ошибки при написании команды: при ошибке в имени файла, он не будет найден, что и приведёт к указанной ошибке.
- Файл отсутствует где-либо, например, вы пробуете использовать telnet, в то время, когда соответствующий компонент Windows не установлен.
- Редко — запускаемый через командную строку файл действительно не является исполняемой программой: изначально сам по себе или из-за повреждений.
Теперь о том, что делать в рассматриваемой ситуации.
Для исправления ошибки «Не является внутренней или внешней командой, исполняемой программой или пакетным файлом» в зависимости от ситуации можно использовать следующие подходы.
Переход к папке с исполняемым файлом в командной строке
Если выполнение команды требуется не на регулярной основе, достаточно перейти в командной строке в папку, содержащую нужный файл, делается это следующим образом:
- Например, мы знаем, что python.exe для последней версии Python на момент написания этой статьи располагается в папкеpip.exe — там же во вложенной папке Scripts (если окажется не ясным, как попасть в эту папку, процесс показан в видео ниже), adb.exe — где-то в папке с platform-tools и так далее. Скопируйте этот путь, сделать это можно из адресной строки проводника.
- Если командная строка запущена на том же диске, где находится нужный исполняемый файл, введите команду вида:
- Если командная строка запущена на диске C:, а исполняемый файл находится на другом диске, то перед 2-м шагом используйте команду вида (здесь D меняем на нужную букву диска) D: с последующим нажатием Enter.
- Введите нужную команду, которая ранее сообщала об ошибке — теперь она должна выполниться успешно.
Добавление папки с программой в системную переменную среды PATH
В случае, когда использование команд требуется регулярно, например, для git, разумным будет добавить папку с этим исполняемым файлом в PATH, чтобы затем в любой момент времени выполнять команды, независимо от того, в какой папке открыта командная строка:
Примечание: если ошибка возникает при использовании команд python, обратите внимание, что при первоначальной установке вам предложат добавить необходимые пути в PATH (отметка Add Python to PATH), то же самое часто бывает и при установке других программ:
Установка недостающих компонентов
Иногда проблема возникает из-за того, что нужный файл попросту отсутствует на компьютере:
- Вы пробуете использовать команды telnet, но не зашли в Панель управления —Программы и компоненты — Включение или отключение компонентов Windows и не включили «Клиент Telnet».
- Запускаете команды pyinstaller, но предварительно не установили его командой pip install pyinstaller
- Пробуете использовать команды adb.exe, но не установили необходимые компоненты Android SDK Platform Tools.
Аналогичная ситуация может быть и для многих других, не входящих в стандартную поставку Windows 10 и Windows 11 компонентов, например, java.
Если ошибка возникает при запуске системных инструментов Windows
Видео инструкция
Надеюсь, статья и видео помогли разобраться с проблемой и помогли в её решении. Остаются вопросы? — задавайте их в комментариях, я постараюсь ответить.
Это дает regasm не распознается как внутренняя или внешняя команда.
Итак, я понял, что мне нужно установить путь для regasm.exe в переменной среды.
Для какой переменной мне нужно установить путь для запуска regasm, как описано выше?
В командной строке:
Как сказал Cheeso:
Вам не нужен каталог на вашем пути. Вы можете поместить его на свой путь, но вам НЕ НУЖНО это сделать. Если вы редко вызываете regasm или вызываете его из командного файла, вы можете обнаружить, что проще просто вызвать regasm через полностью квалифицированный путь на exe, например:
Вам не нужен каталог на вашем пути. Вы можете поместить его на свой путь, но вам НЕ НУЖНО сделать это.
Если вы редко вызываете regasm или вызываете его из командного файла, вы можете обнаружить, что проще просто вызвать regasm через полностью квалифицированный путь на exe, например:
Я использую это как событие post-build в Visual Studio:
В зависимости от вашей версии Visual Studio вместо этого используйте эти переменные среды:
-
Visual Studio 2008: VS90COMNTOOLS
Visual Studio 2010: VS100COMNTOOLS
Visual Studio 2012: VS110COMNTOOLS
Visual Studio 2013: VS120COMNTOOLS
Visual Studio 2015: VS140COMNTOOLS
Visual Studio 2017: VS150COMNTOOLS
Я использую следующее в пакетном файле:
Вне файла bat (т.е. командной строки) просто используйте %a вместо %%a
Выполнить только 1 из следующих
Как только команда сработает, пропустите остальные/ниже:
Только если у вас возникли проблемы, используйте старую версию v2.0.50727:
Только если вы создали myTest.dll только для 64-битной версии, используйте путь Framework64:
Примечание: 64-битные dll не будут работать на 32-битной платформе.
Перетаскивая dll на "regasm" , вы можете зарегистрировать его.
Вы можете открыть два окна Window Explorer. Один будет содержать dll, который вы хотите зарегистрировать. Второе окно будет расположением приложения "regasm" . Прокрутите вниз в обоих окнах, чтобы вы могли видеть как dll, так и "regasm" .
Это помогает уменьшить размер двух окон, чтобы они были бок о бок.
Обязательно перетащите DLL поверх "regasm" , помеченного как "приложение". Существует несколько файлов "regasm" , но вы хотите только приложение.
Для 64-разрядного RegAsm.exe вам нужно будет найти его в таком месте:
Еще в рубрике
Другие вопросы
Почему существует ограничение на количество файлов, которые мы можем открыть одновременно, или количество сетевых подключений, которое мы можем открыть одновременно
Читайте также: