簡體   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