RegAsm .net 4 Ошибка, Не удалось загрузить себя?

я просто не могу зарегистрировать некоторые файлы dll, которые были созданы с помощью .net framework 4 в некоторых системах, в которых установлены как клиентская, так и расширенная версии .net framework 4, когда я копирую regasm.exe из папки .net framework 4 и вставляю его среди некоторых dll, которые я хочу зарегистрировать с помощью regasm, это дает мне эту ошибку:

"RegAsm: ошибка RA0000: не удалось загрузить файл или сборку "file:///file address/RegAsm.exe" или одну из его зависимостей. Операция не поддерживается. (Исключение из HRESULT: 0x80131515)"

Я использую регазм следующим образом:

M:\адрес файла\RegAsm.exe M:\адрес файла\myfile.dll

примечание: когда я копирую regasm из .net framework версии 2 и использую его, у меня нет такой проблемы. но мне нужно зарегистрировать некоторые DLL-файлы, созданные с помощью .net framework 4.

примечание 2: я должен добавить, что в некоторых системах, таких как моя система, в которой установлена ​​Visual Studio 2013, такой проблемы нет.

Я видел такие вопросы с их собственными ответами, но они говорили о том, что regasm не может зарегистрировать некоторые файлы dll, но в моем случае он выдает ошибку о самом себе.

ОБНОВЛЕНИЕ

спасибо Джефф

Я изменил свою команду регистрации на что-то вроде этого:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe M:\адрес файла\myfile.dll

и теперь он дает эту ошибку о моих собственных файлах dll, но я знаю, что у меня есть все зависимости в папке, это ошибка:

RegAsm: ошибка RA0000: не удалось загрузить файл или сборку «file:///M:\file address\myfile.dll» или одну из ее зависимостей. Операция не поддерживается. (Исключение из HRESULT: 0x80131515)


person Farzad Karimi    schedule 19.09.2015    source источник


Ответы (1)


RegAsm — это приложение .NET со своими зависимостями. CLR не может загрузить одну из этих зависимостей, когда вы копируете исполняемый файл на другой компьютер. Если .NET 4 действительно установлен на этом компьютере, RegAsm.exe должен находиться в каталогах .NET в Windows, и вам не нужно копировать его с другого компьютера.

person Jeff    schedule 19.09.2015
comment
да, речь идет о параметрах сетевой безопасности в .net 4, которые можно решить, добавив ‹runtime› ‹loadFromRemoteSources enabled=true/› ‹/runtime› в файл regasm.exe.config, но это не такой хороший способ, я ищу лучший способ. - person Farzad Karimi; 19.09.2015