Мм, жаль, чтобы быть педантом, но это уже завоевало популярность - мы называем его Excel.
http://research.microsoft.com/en-us/um/people/simonpj/papers/excel/
подавляющее большинство программ, которые работают на компьютерах, записано в Excel или одном из многих популярных клонов его.
(существует много программ, которые много раз запускаются, и программы, записанные в Excel, имеют тенденцию НЕ быть их - большинство программ Excel имеет 1 выполненный экземпляр)
Попробуйте последнюю версию OpenSSL.NET ( 0.4.1 ), которая теперь должна включать предварительно собранный libeay32.dll и двоичные файлы ssleay32.dll, которые статически связываются с CRT. Кроме того, вы можете собрать эти библиотеки самостоятельно или использовать «официальную» сборку с openssl.org.
Вероятно, вам не хватает распространяемых файлов VC ++. Я предполагаю, что OpenSSL.NET - это только x86, поэтому вы можете получить распространяемую версию VS2008 x86 , если они являются сборками релиза.
В противном случае, если это отладочные сборки (вы увидите Microsoft.VC90.DebugCRT в EventViewer или в журналах sxstrace), вам потребуется либо:
В крайнем случае, если ничего не работает:
Может быть полезно узнать, где приложение (.net или нет) ищет библиотеки DLL. Просто используйте Process Monitor и отфильтруйте имя файла DLL. Затем скопируйте его в место, где приложение его ищет.
Попробуйте использовать зондирование. Вам необходимо создать файл конфигурации XML, названный как полное имя исполняемого файла приложения (или названный как сборка, которая требует вашу неуправляемую dll) с расширением .config. Например, если ваше приложение называется myapp.exe, файл конфигурации будет называться myapp.exe.config. Файл конфигурации должен находиться в том же каталоге, что и исполняемый файл / сборка.
Файл конфигурации представляет собой простой файл xml:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyuBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="PATH" />
</assemblyuBinding>
</runtime>
</configuration>
Теперь приложение будет искать в PATH при загрузке сборок. ПУТЬ относится к файлу конфигурации / сборки.
Не уверен, будет ли он работать с неуправляемыми dll, но попробовать стоит.
Не глядя в точности на ваш код, я получаю эту ошибку, когда у I:
РЕДАКТИРОВАТЬ: Когда все остальное не удается,
.NET способ сделать это - установить вашу сборку в глобальный кэш сборок .
Каждый компьютер, на котором установлен общий установленная языковая среда имеет машинный кеш кода, называемый глобальный кеш сборок. Глобальный кэш сборок хранит сборки специально предназначенный для совместного использования несколькими приложениями на компьютер.
Ваша проблема связана с этим вопросом:
DllNotFoundException, но есть DLL
Убедитесь, что все зависимости находятся в той же папке вашего приложения или зарегистрированы.
Я нашел решение.
К сожалению, распространяемый пакет VS2008 C ++ не работал - мне пришлось установить версию SP1 И VC ++ 2008. Автор сказал в комментарии на своем сайте, что это была ошибка с его стороны, а не моей. В настоящее время он перекомпилирует библиотеки DLL для статической компоновки. Спасибо всем, кто мне помогал :)
Попробуйте изменить целевой объект платформы для вашего проекта на x86 вместо «любой процессор».