繁体   English   中英

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

[英]How to compile WPF program with command line?

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

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

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

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

msbuild YourProject.csproj /p:Configuration=Release

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

使用命令行编译构建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" 

在这个例子中:

  • / 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

如果你不介意开放环境打开一个确定的编译方法是使用:

C:> devenv HacksWinSample.sln / build release

http://archive.oreilly.com/pub/h/5186

使用这种方法,您可以轻松查看问题所在并进行调试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM