Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 引用SharpSVN时,IEFrame.DLL和SHLWAPI.DLL中缺少外部函数_C#_Visual Studio 2008_.net 3.5_Dependency Management_Sharpsvn - Fatal编程技术网

C# 引用SharpSVN时,IEFrame.DLL和SHLWAPI.DLL中缺少外部函数

C# 引用SharpSVN时,IEFrame.DLL和SHLWAPI.DLL中缺少外部函数,c#,visual-studio-2008,.net-3.5,dependency-management,sharpsvn,C#,Visual Studio 2008,.net 3.5,Dependency Management,Sharpsvn,注意:本节包含不正确的信息-有关详细信息,请跳到下面的更新。本节留作历史用途 我在VisualStudio2008中有一个WPF项目,目标是.NET3.5,它引用了SharpSVN。当我调用SvnClient.Export时,我得到一个异常,Marshal.GetExceptionCode告诉我是0xc06d007e。这似乎是由坏的DLL造成的。我(用Dependency Walker)追踪到了两个罪魁祸首:IEFRAME.DLL和SHLWAPI.DLL。它们缺少以下导出功能: SHLWAPI.

注意:本节包含不正确的信息-有关详细信息,请跳到下面的更新。本节留作历史用途

我在VisualStudio2008中有一个WPF项目,目标是.NET3.5,它引用了SharpSVN。当我调用SvnClient.Export时,我得到一个异常,Marshal.GetExceptionCode告诉我是0xc06d007e。这似乎是由坏的DLL造成的。我(用Dependency Walker)追踪到了两个罪魁祸首:IEFRAME.DLL和SHLWAPI.DLL。它们缺少以下导出功能:

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

我最初还有一个丢失的DLL,通过将%ProgramFiles%\Internet Explorer添加到路径中修复了该DLL。我记不起DLL名称

这是Visual Studio 2008的新安装,SharpSVN 1.7002.1998.12257

我可以运行SharpSVN提供的“svn”命令从存储库中导出,因此我倾向于解决方案/项目配置/参考问题

如何修复此错误


*更新:我已经完善了我对这个问题的理解。SHLWAPI和IEFRAME问题似乎是正常情况-User32.dll具有相同的行为。我通过以下方式修改了我的环境:

环境变量[SVN_SSH]设置为TortoisePlink[C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe]

已更新uri目标以使用当前用户名:

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

我怀疑这是由于对演示框架的依赖,但我仍然想知道是否有办法让它以一种无GUI的方式工作。

IEFrame和SHLWAPI的错误是正常的问题,它们将报告视为错误,但不会真正导致错误。在我的例子中,错误是由于在非用户界面项目中使用SharpSVN引起的。当转移到WPF项目时,它按预期工作


我已经改变了调用命令shell“svn”应用程序的策略,以实现无UI的自动化。

也许IEFrame.DLL和SHLWAPI.DLL有一些外部依赖关系。您应该阅读他们的文档,因为我发现这是一种“正常”情况,user32.dll也有同样的问题,删除sharpsvn对这一点没有影响,当它放回时,调用export仍然失败。看起来这个症状不是问题的一部分,但是调用SvnClient.Export时仍然存在问题,C06d007e失败。