1

我有一个适用于 .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 程序集混合在一起?

4

3 回答 3

2

可能是一个错误。

从版本 12.1.6 开始,我们的控件完全支持 Visual Studio 2012 和 .NET Framework 4.5。我们还将很快发布 11.2.13 版,其运行时与 .NET Framework 4.5 兼容。

http://www.devexpress.com/Support/Center/Question/Details/Q430478

有什么方法可以将调试器附加到它并查看异常是什么?

于 2012-10-26T08:09:27.400 回答
1

.Net 有两种不同的风格。您使用的版本可能是有限的 .Net(客户端配置文件),而您尝试运行的程序需要完整版本。但根据http://msdn.microsoft.com/en-us/library/cc656912.aspx 4.5 仅提供完整版本。

于 2012-10-26T11:53:49.467 回答
1

看看这篇文章。http://www.west-wind.com/weblog/posts/2012/Mar/13/NET-45-is-an-inplace-replacement-for-NET-40。它描述了安装 .net 4.5 时实际发生的情况。您可以要求程序供应商使用最新版本的 DevExpress 控件重新编译它。

于 2012-10-27T13:03:23.510 回答