【问题标题】:Impossible to run C# WPF software (Error 0xc0000374)无法运行 C# WPF 软件(错误 0xc0000374)
【发布时间】:2022-02-04 14:37:54
【问题描述】:

我有一个问题,我需要一些帮助。

我在 WPF 中开发一个 C# 软件,我已经完成它,程序编译但不运行。

我尝试使用逐步运行搜索问题并在此行结束

var logfile = new NLog.Targets.FileTarget("logfile") { FileName = Application.StartupPath + @"\Logs\" + DateTime.Now.DayOfYear + ".txt" };

var logconsole = new NLog.Targets.ConsoleTarget("logconsole");

我得到了这个错误:“尝试读取或写入受保护的内存。这通常表明另一个内存已损坏”

在执行期间随机发生,但主要是在运行这些代码行时。

如果你有解决方案,我会接受!

【问题讨论】:

    标签: c# .net memory


    【解决方案1】:

    WPF Application 类没有 StartupPath 属性。

    您可以添加System.Windows.Forms 作为项目参考并使用System.Windows.Forms.Application.StartupPath

    替代方案:

    string appPath = System.Reflection.Assembly.GetExecutingAssembly()
                   .GetModules()[0].FullyQualifiedName;
    string appDir = Path.GetDirectoryName(appPath);
    

    要以更精细的粒度调试您的代码,您可以重写它:

    var fileName = Application.StartupPath;
    
    fileName += @"\Logs\"; 
    fileName += DateTime.Now.DayOfYear 
    fileName += ".txt";
    
    var logfile = new NLog.Targets.FileTarget("logfile");
    logFile.FileName = fileName;
    

    【讨论】:

    • 非常感谢,这对我很有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    相关资源
    最近更新 更多