Как выполнить regasm.exe из командной строки кроме командной строки Visual Studio?

Поскольку файл является просто потоком байтов, из любого байта , включая нулевой байт. Некоторые файлы называются текстовыми файлами, когда они содержат только подмножество всех возможных байтов: печатаемые (примерно буквенно-цифровые, пробелы, знаки пунктуации).

C-строки представляют собой последовательность байтов, оканчивающихся нулевым байтом, просто вопрос соглашения. Они слишком часто являются источником путаницы; просто последовательность, оканчивающаяся нулем, означает, что любой ненулевой байт, оканчивающийся нулем, является правильной строкой C! Даже тот, который содержит непечатаемый байт или контрольный символ. Будьте осторожны, потому что ваш пример не C! В C printf("dummy\000foo"); никогда не будет печатать foo, поскольку printf будет рассматривать строку C, начинающуюся с d и заканчивающуюся нулевым байтом в середине. Некоторые компиляторы жалуются на такой строковый литерал C.

Теперь нет прямой связи между строками C (которые обычно также содержат только печатные символы) и текстовым файлом. В то время как печать строки C в файл обычно заключается в сохранении только ее подпоследовательности ненулевых байтов.

50
задан Benjamin 7 January 2014 в 01:28
поделиться

5 ответов

В командной строке:

SET PATH = "%PATH%;%SystemRoot%\Microsoft.NET\Framework\v2.0.50727"
42
ответ дан 7 November 2019 в 10:40
поделиться

Вам не нужен каталог на вашем пути. Вы можете поставить это на свой путь, но вам НЕ НУЖНО этого делать.
Если вы редко вызываете regasm или вызываете его из командного файла, вы можете обнаружить, что проще просто вызвать regasm через полный путь к исполняемому файлу, например:

c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe   MyAssembly.dll
17
ответ дан 7 November 2019 в 10:40
поделиться

В пакетном файле я использую следующее:

path = %path%;C:\Windows\Microsoft.NET\Framework\v2.0.50727
regasm httpHelper\bin\Debug\httpHelper.dll /tlb:.\httpHelper.tlb /codebase
pause
2
ответ дан 7 November 2019 в 10:40
поделиться

Как сказал Чизо:

Вам не нужен каталог на вашем пути. Вы можете поставить это на свой путь, но вам не нужно этого делать. Если вы редко вызываете regasm или вызываете его из командного файла, вы можете обнаружить, что проще просто вызвать regasm через полный путь к исполняемому файлу, например:

% SystemRoot% \ Microsoft.NET \ Framework \ v2.0.50727 \ regasm.exe MyAssembly.dll

38
ответ дан 7 November 2019 в 10:40
поделиться

Я использую это как событие после сборки в Visual Studio:

call "%VS90COMNTOOLS%vsvars32.bat"
regasm  $(TargetPath) /tlb

В зависимости от версии вашей Visual Studio, используйте эти переменные окружения вместо этого:

  1. Visual Studio 2008: VS90COMNTOOLS
  2. Visual Studio 2010: VS100COMNTOOLS
  3. Visual Studio 2012: VS110COMNTOOLS
  4. Visual Studio 2013: VS120COMNTOOLS
  5. Visual Studio 2015: VS140COMNTOOLS
  6. Visual Studio 2017: VS150COMNTOOLS
8
ответ дан 7 November 2019 в 10:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: