【发布时间】:2015-11-27 16:19:29
【问题描述】:
我正在尝试调试错误加载的程序集 - 似乎为 NuGet 包加载了错误的平台版本。
如何在 Xamarin Studio 中显示所有已加载模块的列表和完整路径?
Visual Studio 有一个显示此内容的“模块”窗口。
【问题讨论】:
标签: c# module nuget portable-class-library xamarin-studio
我正在尝试调试错误加载的程序集 - 似乎为 NuGet 包加载了错误的平台版本。
如何在 Xamarin Studio 中显示所有已加载模块的列表和完整路径?
Visual Studio 有一个显示此内容的“模块”窗口。
【问题讨论】:
标签: c# module nuget portable-class-library xamarin-studio
1) 您可以在 bin/Debug (Release) 目录中查看用于打包 .app/.apk 的所有引用的本地副本
2) 如果您打开了Properties Pad(在 IDE 的右侧),您可以循环浏览您的引用,并且将显示正在使用的程序集的物理位置“路径”(以及带有版本、包、名称...)
3) 您可以打开Assembly Browser 视图并循环浏览左侧的顶级引用,并查看生成的程序集属性、信息、c# 或 IL 代码等...
4) 您可以使用monodis 查看您应用的主dll 的引用程序集,即monodis --assemblyref BlueToothTransfer.dll
5) ikdasm 更像是 ldasm.exe 的直接替换
【讨论】:
对可移植类库使用 "bait and switch" 方法的 NuGet 包很棘手,因为您编写代码时所针对的“诱饵”程序集并不是实际加载的程序集。
与“应该加载”相反,我发现知道实际加载了哪些模块的唯一确定方法是查看应用程序输出调试器窗口。在启动期间,它会在加载每个程序集时输出其完整路径。
【讨论】: