如何在没有Visual Studio的情况下在C#中渲染window xaml?

如何在没有Visual Studio的情况下在C#中渲染window xaml?,c#,xaml,C#,Xaml,我想在命令提示符下运行并显示XAML GUI 我遵循的步骤是编写CS代码并通过命令行进行编译,但我最终在处理InitializeComponent时出错,因为它不在上下文中,甚至我知道其中有windowsystem.window.form,这还不够恰当,或者与GUI组件没有任何关系 下面的代码只是我复制和粘贴的许多错误。我没有Visual Studio。我不需要它来编译我的CS代码,窗口附带了编译c代码的csc.exe命令。我的问题是围绕XAML的使用,它是与Windows中的C#一起提供的,还

我想在命令提示符下运行并显示XAML GUI

我遵循的步骤是编写CS代码并通过命令行进行编译,但我最终在处理
InitializeComponent
时出错,因为它不在上下文中,甚至我知道其中有window
system.window.form
,这还不够恰当,或者与GUI组件没有任何关系

下面的代码只是我复制和粘贴的许多错误。我没有Visual Studio。我不需要它来编译我的CS代码,窗口附带了编译c代码的
csc.exe
命令。我的问题是围绕XAML的使用,它是与Windows中的C#一起提供的,还是完全独立的?Windows不是也附带了XAML和表单GUI吗

没有其他问题接近我的问题。但您可以找到许多答案,其中显示Windows在堆栈交换上带有C#编译器。请不要指出Visual Studio

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "Change Prperties Through Coding";
            this.BackColor = Color.Brown;
            this.Size = new Size(350, 125);
            this.Location = new Point(300, 300);
            this.MaximizeBox = false;
        }
    }
}
使现代化
在回答可能的重复问题时,有人指出Windows确实自带了自己的C#编译器,但这与我的问题无关。

你说得对,你可以在不使用Visual Studio的情况下构建C#和其他.NET代码
csc.exe
是Microsoft C#编译器,可用于此目的。在我的计算机上,csc.exe位于以下位置:

C:\Windows\Microsoft.NET\Framework\v4.0.30319  
您的计算机可能位于其他文件夹中

至于代码,如果这是您仅有的文件,那么最终会出现一些错误

  • 没有入口。通常这是在Program.cs中
  • 您的类依赖于System.Windows.Forms。但是,您需要某种添加引用的方法。通常,这是通过项目文件完成的。也可以在调用csc时直接添加引用。然而,在多次引用之后,这就变得很麻烦了

如果没有visual studio或visual studio社区版本,部分情况下是无法使用的。WPF正在被添加到.NETCore中,但我不知道这是否意味着它仍然完全需要VisualStudio。所有涉及xaml、wpf、uwp或此工具的任何其他变体的信息都在使用VisualStudio进行渲染时使用。这个工具是一个在窗口应用程序中使用的gui框架,它改进了仍然在使用的旧框架WinForms。

问题是它看起来一开始就不存在。错误,例如尝试使用
InitializeComponent
将导致“上下文中不存在”。这让我觉得c#没有这个功能。但窗口确实包含cpc编译器。因此,我想一个答案可能来自某个人,他可以说“不,它不是用xaml包装出来的,你必须下载它”,并给我一个下载它的链接。否决票对我和用户的影响非常大,所以再投一次否决票,我将删除我的帖子,这样我就不会受到严重影响。@L2L:请将错误信息编辑到您的问题中,这可能对一般读者有用。如果有堆栈跟踪,请也添加它。嘿@DougJohnson(@DougJohnson)你说过要向csc添加引用。想举个例子吗?包括从何处获取System.Windows.Forms以及如何将其添加为引用以用作生成工具。如果说它变得麻烦,那就是看不起使用它作为唯一方法的通行证向导,依赖visual studio等工具也会削弱通行证向导的能力。。。除了操作系统之外,我宁愿尽可能少地依赖微软的工具。无论如何,如果您可以添加到我请求的答案中,这将对我和其他人有所帮助。当然,您可以使用/r开关从csc.exe引用DLL。如果需要引用多个DLL,请用分号分隔它们。这里有一个示例:csc.exe Program.cs/r:System.Windows.Forms.dly您的示例是Windows窗体而不是WPF。XAML代表WPF。。。在WPF中,您的窗口通常从窗口继承,InitializeComponent通常是VisuaStudio在单独的隐藏文件或设计器生成的文件上生成的函数。我看不出你的例子中存在这个函数;你管它叫什么,但它的定义是什么?我想你需要先读几本关于C#、WPF和Windows的书Forms@Darkonekt你在说什么?听这里,xaml,wpf,uwp,或者它叫什么,或者它的变体,我只想呈现它。你指的是VisualStudio,你的行为就像我在这里发布之前没有做自己的搜索一样。你认为我喜欢冒着失去在这里提问的权利的风险吗?了解xaml的元素和使用它的方法有一个基调,但我找不到的是如何访问它,在哪里下载它,或者Windows是否随它一起提供。如果你在这里添加了一个mod,删除这个问题或者给出一个答案,而不是一个建议。你把事情搞混了。。。。不,你没有做过适当的研究。。。你想编译xaml,但你展示了一个Windows窗体的例子。。。。然后,您不想谈论VisualStudio,但显然您从VisualStudio的示例中复制了该代码。。。。调用InitializeComponent告诉我您没有进行研究。。。因为InitializeComponent不是Form类的一部分,所以它是由VISUAL STUDIO生成的!那么您询问xaml,但显示windows窗体代码?你说不要谈论VisualStudio,但是你展示了VisualStudio代码……?为了回答你的问题,Windows窗体,WPF是.NET框架的一部分。窗户也随它而来。根据安装的Windows版本,您将获得不同版本的.NET。如果需要,您可以下载并安装更新版本的.NET。这就是所有这些图书馆所在的地方。它们是其中的一部分。在你收到答案后,不允许对你的问题进行大幅度的修改。欢迎您作出澄清,即使是解释为什么答案不适用的澄清,但您上次的修订是不可接受的,因为它将问题转化为完全不同的内容。傅