Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何用命令行编译WPF程序?_C#_Wpf - Fatal编程技术网

C# 如何用命令行编译WPF程序?

C# 如何用命令行编译WPF程序?,c#,wpf,C#,Wpf,我需要用命令行C#compiler(即csc.exe)编译使用Visual Studio编写的简单WPF应用程序 问题是错误CS0103-编译器说我的程序中没有InitializeComponent()方法。但这是错误的,因为我添加了System.Xaml.dll。有人知道怎么解决这个问题吗 使用命令行编译构建WPF应用程序 使用命令行编译器。例如,考虑一个独立的WPF 应用程序,用C#编写,具有以下源代码文件: 应用程序定义文件(app.cs) 列表项 一个窗口(mainwindow.cs

我需要用命令行C#compiler(即
csc.exe
)编译使用Visual Studio编写的简单WPF应用程序

问题是错误
CS0103
-编译器说我的程序中没有
InitializeComponent()
方法。但这是错误的,因为我添加了System.Xaml.dll。有人知道怎么解决这个问题吗

使用命令行编译构建WPF应用程序 使用命令行编译器。例如,考虑一个独立的WPF 应用程序,用C#编写,具有以下源代码文件:

  • 应用程序定义文件(app.cs)
  • 列表项
一个窗口(mainwindow.cs)

此应用程序可以使用C#命令行编译器构建, csc.exe,使用以下命令:

csc.exe
/out:WPFApplication.exe
/target:winexe
app.cs mainwindow.cs
/reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\presentationframework.dll"
/reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\windowsbase.dll"
/reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\presentationcore.dll"
在本例中:

  • /out参数用于指定已编译可执行应用程序(WPFApplication.exe)的名称
  • /target参数用于指定编译的应用程序类型(Microsoft Windows可执行文件)
  • 指定了C#源代码文件(app.cs和mainwindow.cs)
  • /reference参数用于标识.NET Framework 3.0程序集,其中包含源代码中使用的类型
虽然此应用程序由两个源代码文件组成,但 行编译可用于构建具有更多功能的应用程序 复杂性(请参见从命令行构建(CSharp))。然而, 命令行编译不支持WPF的编译 包含可扩展应用程序标记语言的应用程序 (XAML)标记源代码文件。此外,命令行编译 不足以支持完整的构建需求 典型WPF应用程序所需的,包括配置 管理和ClickOnce应用程序和部署清单 一代支持WPF更复杂的构建需求 在应用程序中,WPF集成并扩展了MSBuild

请注意,对于构建更复杂的解决方案,MSBuild可能是更好的选择,大多数连续集成解决方案都支持它

更多信息请点击此处:

使用MSBuild构建将比使用csc.exe更容易。获取正确MSBuild()的路径,因为您的计算机上可以有多个MSBuild版本,大多数情况下每个Visual Studio安装一个版本

然后,只需构建项目文件:

msbuild YourProject.csproj /p:Configuration=Release

并且输出将在bin/Release文件夹中。

如果您不介意开发环境打开sure fire编译的方法是使用:

C:>devenv HacksWinSample.sln/build发行版


使用这种方法,您可以很容易地看到问题所在并进行调试。

编译器很少出错。在您担心从命令行运行应用程序之前,我需要先编译应用程序。如果没有看到您的代码,很难告诉您
InitializeComponent
调用应该去哪里。您是否尝试过启动一个新的、空白的WPF项目,并对其进行编译,看看其中的区别是什么?看起来标题有误导性。我先读了它,以为您只是想“启动”应用程序。
InitializeComponent()
方法不在
System.Xaml.dll
中。它位于自动生成的C#文件中,该文件是项目输出的一部分(例如默认情况下
MainWindow.g.i.cs
)。另请参见。您是否尝试过msbuild.exe?例如:
msbuild*.csproj/t:Build
似乎是一个重复的问题