【发布时间】:2020-01-13 08:32:57
【问题描述】:
我已经使用 .NET 4.6.1 构建了一个 WPF 应用程序。
之后我降级到 4.0,因为它需要在 Windows XP 中运行
问题是我在 Windows XP 中启动程序时遇到了问题。
这里是我的 xaml:
<Window x:Class="ETest_Scanner.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="E-Test Barcode Formatter" Height="200" Width="450"
Topmost="True" StateChanged="Window_StateChanged" Icon="IMG/scanner.ico"
Background="#FF919191">
<Grid>
<Label Content="{Binding BarcodeScanner.ScannedBarcode,
FallbackValue=AnyError}" Margin="10" FontSize="72"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center" />
</Grid>
</Window>
如何防止错误发生?
他的命名空间似乎有问题?
这只发生在 windows 10 和 windows 7 中的 windows XP 中,它可以完美运行。
提前致谢
编辑:
我尝试创建一个新项目,它是 4.0 的。
问题在于库 using System.Runtime.CompilerServices; 在 .NET 4.0 中不可用
现在我无法访问我的NotifyPropertyChanged 的CallerMemberName。
我决定用命名空间System.Runtime.CompilerServices创建一个类,所以编译器认为我有这个类可用,看起来像这样:
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
public class CallerMemberName : Attribute
{
}
}
现在构建很好,但我仍然遇到与上图相同的问题。
【问题讨论】:
-
您的 Windows XP 可能是 32 位操作系统。确保构建面向 x86 平台的应用程序,而不是任何 Cpu 或 x64。这可能就是您收到该异常的原因。
-
@Jon 我已经在另一个发生类似问题的平台上看到并修复了该问题,但这并没有成功,是的,它是一个 32 位操作系统。仍然感谢您的意见!
-
您能否创建一个针对 .NET 4.0 的新 WPF 项目,看看是否得到相同的结果,而不是从 4.6.1 降级您的项目?
-
好主意,不知道为什么我没有考虑这个。当我尝试时,我会给你反馈。可能是明天
-
@Jon 我编辑了我的问题,也许你有别的想法。
标签: c# wpf exception windows-xp .net-framework-version