当前上下文中不存在“ InitializeComponent”

时间:2018-08-23 08:22:47

标签: c# roslyn

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

  

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

     

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

有什么办法解决这个问题吗?

更新

所以我添加了一个main方法,现在出现以下错误:

  

App.xaml.cs(20,17):错误CS1061:“ App”不包含定义   对于“ InitializeComponent”,没有扩展方法   接受类型为“ App”的第一个参数的“ InitializeComponent”可以   被找到(您是否缺少using指令或程序集引用?)

     

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();
    }
}

1 个答案:

答案 0 :(得分:4)

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

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