Отсутствует внешняя функция в IEFrame.DLL и SHLWAPI.DLL при обращении к SharpSVN - PullRequest
0 голосов
/ 21 февраля 2012

Примечание: этот раздел содержит неверную информацию - перейдите к обновлению ниже для деталей.Этот раздел оставлен для исторических целей.

У меня есть проект WPF в Visual Studio 2008, предназначенный для .NET 3.5, который ссылается на SharpSVN.Когда я делаю вызов в SvnClient.Export, я получаю исключение, которое, по словам Marshal.GetExceptionCode, равно 0xc06d007e.Кажется, это вызвано плохой DLL.Я отследил (с помощью Обозревателя зависимостей) эту DLL для двух преступников: IEFRAME.DLL и SHLWAPI.DLL.В них отсутствуют следующие функции экспорта:

SHLWAPI.DLL: # 270 IEFRAME.DLL: # 141, # 159, # 160

У меня также изначально была недостающая DLL, которая была исправлена ​​путем добавления% ProgramFiles% \ Internet Explorer к пути.Я не помню имя DLL.

Это свежая установка Visual Studio 2008, SharpSVN 1.7002.1998.12257.

Я могу запустить команду "svn", которая поставляется вместе с SharpSVN для экспорта из нашего репозитория, поэтому я склоняюсь к решению / конфигурации проекта / справочной проблеме.

Как мне это исправитьошибка?


* Обновление: я усовершенствовал свое понимание этой проблемы.Проблемы с SHLWAPI и IEFRAME кажутся нормальным состоянием - User32.dll работает аналогично.Я изменил свою среду следующими способами:

Переменная среды [SVN_SSH] установлена ​​в TortoisePlink [C: \ Program Files \ TortoiseSVN \ bin \ TortoisePlink.exe]

Обновлена ​​цель uri для использования текущейusername:

SvnUriTarget uriTarget = 
    new SvnUriTarget("svn+ssh://" + Environment.UserName + "@myserver/mypath");

С этой конфигурацией я могу успешно экспортировать при запуске этого кода как часть приложения WPF.Тем не менее, я по-прежнему получаю ошибки при запуске в рамках проекта MSTest.

System.Runtime.InteropServices.SEHException: External component has thrown an exception.\r\n   
at svn_client_export5(Int32* , SByte* , SByte* , svn_opt_revision_t* , svn_opt_revision_t* , Int32 , Int32 , Int32 , svn_depth_t , SByte* , svn_client_ctx_t* , apr_pool_t* )\r\n
at SharpSvn.SvnClient.Export(SvnTarget from, String toPath, SvnExportArgs args, SvnUpdateResult& result) in g:\\dist\\src\\sharpsvn\\commands\\export.cpp:line 100
at SharpSvn.SvnClient.Export(SvnTarget from, String toPath, SvnExportArgs args) in g:\\dist\\src\\sharpsvn\\commands\\export.cpp:line 66
at SimulationManager.Model.SubversionInterface.Export() in C:\\Users\\phines\\Documents\\Projects\\SimulationManager\\SimulationManager\\SimulationManager\\Model\\SubversionInterface.cs:line 43

Я подозреваю, что это связано с опорой на структуру представления, но все же хотел бы знать, есть ли способ получитьэто работает без графического интерфейса.

1 Ответ

2 голосов
/ 22 февраля 2012

Ошибки с IEFrame и SHLWAPI являются обычными проблемами, которые зависят от отчетов как от ошибок, но не вызывают их на самом деле.В моем случае ошибка была вызвана использованием SharpSVN в проекте без пользовательского интерфейса.При перемещении в проект WPF он работал как положено.

Я изменил стратегии вызова приложения командной оболочки "svn" для достижения автоматизации без пользовательского интерфейса.

...