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

And*_*ing 13 c# wpf

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

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

Com*_*Guy 8

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

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

msbuild YourProject.csproj /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)

输出将在bin/Release文件夹中.


Zoz*_*ozo 5

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

  • 应用程序定义文件 (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"
Run Code Online (Sandbox Code Playgroud)

在这个例子中:

  • /out 参数用于指定已编译的可执行应用程序 (WPFApplication.exe) 的名称。
  • /target 参数用于指定编译的应用程序类型(Microsoft Windows 可执行文件)。
  • 指定了 C# 源代码文件(app.cs 和 mainwindow.cs)
  • /reference 参数用于标识具有源代码中使用的类型的 .NET Framework 3.0 程序集。

虽然此应用程序由两个源代码文件组成,但可以使用命令行编译来构建更复杂的应用程序(请参阅从命令行构建 (CSharp))。但是,命令行编译不支持包含可扩展应用程序标记语言 (XAML) 标记源代码文件的 WPF 应用程序的编译。此外,命令行编译不够健壮,无法支持典型 WPF 应用程序所需的全部构建要求,包括配置管理和 ClickOnce 应用程序以及部署清单生成。为了支持 WPF 应用程序更复杂的构建要求,WPF 集成并扩展了 MSBuild。

请注意,MSBuild 可能是构建更复杂解决方案的更好选择,并且大多数持续集成解决方案都支持它开箱即用。

更多信息:https : //msdn.microsoft.com/en-us/library/aa970678(v=vs.85).aspx