代码之家  ›  专栏  ›  技术社区  ›  doorman

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

  •  0
  • doorman  · 技术社区  · 6 年前

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

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

    作为切入点

    知道怎么解决这个问题吗?

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

    App.xaml.cs(20,17):错误CS1061:“App”不包含定义 对于“InitializeComponent”且没有扩展方法 被找到(是否缺少using指令或程序集引用?)

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

    public partial class App : Application
    {
        [STAThread]
        public static void Main()
        {
            var app = new App();
            app.InitializeComponent();
            app.Run();
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   Kris Vandermotten    6 年前

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

    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