如何部署程序集,以便可以从“即时窗口” 调用实用程序库中的方法,而不必将解决方案项目引用添加到MyCompany.DebuggingTools.dll
?
上下文
我已经编写了一个实用程序库(简称为MyCompany.DebuggingTools.dll
),其中包括一些在开发过程中调试应用程序有用的方法。
理想情况下,我希望能够:
MyCompany.DebuggingTools.dll
的任何解决方案项目引用
更多信息
MyCompany.DebuggingTools.dll
被添加为对被测项目的引用
MyCompany.DebuggingTools.dll
尚未添加为项目参考
error CS0246: The type or namespace name 'MyCompany' could not be found (are you missing a using directive or an assembly reference?)
答案 0 :(得分:1)
我一直在寻找类似的东西-这是一个完整而完全的破解,但是可以在 Visual Studio 2017 立即窗口中使用,如果您将其用于特别讨厌的调试中,则可能值得这样做会话:
dynamic xx = System.Activator.CreateInstance(System.Reflection.Assembly.LoadFile(@"C:\dev\ImmediateWindowHelpers.dll").GetType("FullyQualifiedNamespace.Helpers"));
其中Helpers类是非静态的地方。现在,我可以在其上调用方法了:
xx.PrintParameters(sqlParameterList);
因为它将返回一个字符串,所以它将仅显示在立即窗口中。我对此进行了测试,它对我有用。同样,该实例仅在调试会话中有效,并且每次都需要加载。习惯之后,这没什么大不了的,它只是一行。
我可以想象某种形式的Visual Studio扩展会更理想,它可以在调试时为您加载程序集,或者在程序集包含构建时将其加载到程序包中。应用程序域?我从没研究过这些东西,但是如果您花费大量时间进行调试,这似乎是值得的。