从我的理解,如果没有弄错,发布模式应该编译更多的优化,因此大小更小。
我正在开发一个WPF C#应用程序,当我选择Release mode
时,我的应用程序变得有线,但它在Debug mode
中工作正常。我可以知道它有可能吗?这种情况最常见的因素是什么?
更新
当应用程序加载时,登录后的登陆页面将显示从数据库中检索到的信息。在debug mode
时,信息确实显示为预期。但在Release mode
中,信息未显示。
数据库连接没有问题,因为如果有,用户根本无法登录。
对不起,我无法分享任何代码,因为项目太大了。我期待更多关于Release mode
和Debug mode
之间的一般理解,并找出我所面临的可能原因。任何帮助将非常感激。
答案 0 :(得分:1)
这里的biggesdt问题是Debug和Release只是项目中特定配置的占位符。您实际上可以按项目更改它们的含义。
默认情况下,差异实际上相当小。 Click for large image
这意味着您可以使用配置管理器(右键单击解决方案资源管理器中的解决方案)来获取您的调试配置,并基于它创建一个新配置,并慢慢更改这些属性,以便您可以找到问题实际上是。
一个常被误解的技巧是你仍然可以调试一个发布程序集(即使在它被优化之后)。因此,您应该能够更好地了解正在发生的事情,然后再次提出您的问题。
答案 1 :(得分:0)
如果您使用MVVM Light,则有两种不同的模式:
static ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
if (ViewModelBase.IsInDesignModeStatic)
{
SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();
}
else
{
SimpleIoc.Default.Register<IDataService, DataService>();
}
SimpleIoc.Default.Register<MainWindowViewModel>();
}
SimpleIoc.Default.Register fails at IsInDesignModeStatic if the Interface is in different assembly - 有很多问题。没有足够的数据来解决这个问题。