我有一个适用于 .NET 4.0 的 .NET 应用程序 - 尽管该应用程序公开了它的 app.config,但我没有它的源代码
但。
我已经安装了带有 .NET 4.5 的 Visual Studio 2012。突然,.NET 4.0 应用程序在某些地方抛出异常——我用 Reflector 分析,异常是在应用程序的 WPF 部分的 InitializeComponent() 中抛出的。
Uri resourceLocator = new Uri("/Some.Assembly;someuri/someuri/somefile.xaml", UriKind.Relative);
例外是:
The invocation of the constructor on type 'DevExpress.Xpf.Grid.GridControl' that matches the specified binding constraints threw an exception.
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
不幸的是,我无法判断是否有任何内部异常。
如果我卸载 .NET 4.5 并安装 .NET 4.0,则不会引发异常,但我无法使用 VS 2012。
我试图将这些行添加到 app.config 但没有成功。
<startup useLegacyV2RuntimeActivationPolicy="true" >
<supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0" />
<requiredRuntime version="v4.0.30319" />
</startup>
如何强制应用仅使用 4.0 和 4.0?甚至可能吗?.NET 4.5 是否以某种方式与 4.0 程序集混合在一起?