我需要使用命令行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
Run Code Online (Sandbox Code Playgroud)
输出将在bin/Release文件夹中.
使用命令行编译构建 WPF 应用程序可以使用命令行编译器构建完全用代码(即无标记)编写的 WPF 应用程序。例如,考虑一个用 C# 编写的 WPF 独立应用程序,具有以下源代码文件:
- 应用程序定义文件 (app.cs)。
- 项目清单
一个窗口(mainwindow.cs)。
可以使用 C# 命令行编译器 csc.exe 使用以下命令构建此应用程序:
Run Code Online (Sandbox Code Playgroud)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