【发布时间】:2018-08-23 08:22:47
【问题描述】:
我正在使用 Roslyn 解析一个非常基本的 WPF 解决方案。我设置了一个诊断程序,发现以下错误:
MainWindow.xaml.cs(25,13):错误 CS0103:名称 当前上下文中不存在“InitializeComponent”
错误 CS5001:程序不包含适合的静态“主要”方法 入口点
知道如何解决这个问题吗?
更新
所以我添加了一个 main 方法,现在我收到以下错误:
App.xaml.cs(20,17):错误 CS1061:“应用”不包含定义 对于'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();
}
}
【问题讨论】:
-
看起来你给了它一组不完整的文件来处理。
-
你有main方法吗?
-
嗯,App.xaml 被设置为构建动作 ApplicationDefinition,因此应该自动定义主要内容。如果我将构建操作更改为页面,我可以定义自己的 main 方法。
-
在 WPF 项目中除了编译代码之外还有很多事情要做。在使用 IDE 构建的普通 WPF 项目中很容易看到。之后查看 obj 子目录并注意那里的 .cs 文件。它们包含 Main() 入口点和 InitializeComponent 胶水。 MSBuild 这样做,它运行一个代码生成器,将 .xaml 文件作为输入。考虑到这个先有鸡还是先有蛋的问题,不太确定你想如何继续前进,你为什么要使用 Roslyn 并不明显。将这些 .cs 文件告诉 Roslyn 是一种解决方法。
-
我用更多错误代码更新了我的问题。我会假设 Roslyn 会处理一个开箱即用的未更改的 hello world wpf 应用程序?