我有一个可以在某些项目中引用的组件(例如Component.dll).当然,我在发布模式下发布它.
在另一个项目中(例如Project.exe)我引用Component.dll.
如果我Project.exe在Debug模式下构建,有没有办法在我的Component.dll库中找到它?
澄清更多:如果我有一个类和一个Test在其中命名的方法Component.dll.我可以这样做:
public void Test(){
if(Debug.IsInDebugMode)
...
}
Run Code Online (Sandbox Code Playgroud)
请记住,它Component.dll是在发布模式下构建的.
您的代码是在发布模式还是调试模式下构建并不重要.生成的IL几乎相同.Debug版本将具有抖动用于设置编译默认值的属性,您的属性将丢失.接下来重要的是你如何调试或运行你的应用程序.重要的设置是工具+选项,调试,常规,"抑制模块加载时的JIT优化".它默认为勾选.
现在,无论您的应用是否由调试器启动,都会产生影响.这很容易找到,使用该System.Diagnostics.Debugger.IsAttached属性.如果为false,则从IL生成的机器代码将通过抖动进行优化.一个退化的情况是在代码启动后附加一个调试器.有点重要的是,这对你没有任何影响.