首页 > 解决方案 > 当前上下文中不存在“InitializeComponent”

问题描述

我正在使用 Roslyn 解析一个非常基本的 WPF 解决方案。我设置了诊断程序并发现以下错误:

MainWindow.xaml.cs(25,13):错误 CS0103:当前上下文中不存在名称“InitializeComponent”

错误 CS5001:程序不包含适用于入口点的静态“Main”方法

知道如何解决这个问题吗?

更新

所以我添加了一个主要方法,现在我收到以下错误:

App.xaml.cs(20,17):错误 CS1061:“App”不包含“InitializeComponent”的定义,并且找不到接受“App”类型的第一个参数的扩展方法“InitializeComponent”(您是否缺少使用指令还是程序集引用?)

MainWindow.xaml.cs(25,13):错误 CS0103:当前上下文中不存在名称“InitializeComponent”

这里是主要方法

public partial class App : Application
{
    [STAThread]
    public static void Main()
    {
        var app = new App();
        app.InitializeComponent();
        app.Run();
    }
}

标签: c#roslyn

解决方案


如果您使用类似于以下的代码加载此解决方案:

var ws = MSBuildWorkspace.Create();
var solution = await ws.OpenSolutionAsync(path);

那么问题是您没有分析应该从 .xaml 文件生成的代码。这可以通过将上面的代码更改为:

var properties = new Dictionary<string, string> { ["DesignTimeBuild"] = "true" };
var ws = MSBuildWorkspace.Create(properties);
var solution = await ws.OpenSolutionAsync(path);

有关更多信息,另请参阅https://github.com/dotnet/roslyn/issues/2779


推荐阅读