我编写了一个.NET库,这个库由第三方应用程序中的VBA宏调用。我使用了Robert Giesecke的Unmanaged Exports,这部分工作正常(库C#代码被调用,如果我附加到进程,我可以在里面调试,等等)。
当我需要使用其他库中定义的类型时会出现问题,例如使用Prism Mvvm的WPF GUI需要Microsoft.Practices.Prism.Mvvm程序集。在这种情况下,.NET搜索程序集但无法找到它。使用进程监视器,融合日志查看器进行故障排除,我发现搜索缺少的程序集非常短,搜索程序集的唯一位置是应用程序根目录(例如,在C:\ Program Files \ AppName \中)。没有努力查看dll所在的目录以及依赖项所在的位置。我可以将所有依赖项复制到应用程序的根目录,但这不是一个好的情况(我不想混淆另一个应用程序的私有空间)
如何告诉.NET框架查看DLL用于丢失程序集的目录?
答案 0 :(得分:0)
请参阅运行时如何查找程序集(https://msdn.microsoft.com/en-us/library/yx7xezcf%28v=vs.110%29.aspx)
AFAIK .NET将查看GAC,应用程序的根目录和任何专用探测路径(需要是应用程序根目录中的文件夹)。它不像非托管世界那样可以设置PATH变量并且加载了dll