Подтвердить что ты не робот

Как скомпилировать программу WPF с командной строкой?

Мне нужно скомпилировать простое приложение WPF, которое я написал с помощью Visual Studio, с компилятором командной строки С# (i.e csc.exe).

Проблема - ошибка CS0103 — компилятор говорит, что в моей программе нет метода InitializeComponent(). Но это неправильно, потому что я добавляю System.Xaml.dll. Кто-нибудь знает, как это решить?

4b9b3361

Ответ 1

Создание с помощью MSBuild будет более простым путем, чем с csc.exe. Получите путь к правильному MSBuild (Путь к MSBuild), так как на вашем компьютере может быть несколько версий MSBuild, большую часть времени для каждой установки Visual Studio.

Затем просто создайте файл проекта:

msbuild YourProject.csproj /p:Configuration=Release

и вывод будет в папке bin/Release.

Ответ 2

Создание приложения WPF с использованием компиляции в командной строке. Приложение WPF, написанное полностью в коде (т.е. без разметки), может быть создано используя компилятор командной строки. Например, рассмотрим автономный WPF приложение, написанное на С#, со следующими файлами исходного кода:

  • Файл определения приложения (app.cs).
  • Элемент списка

Окно (mainwindow.cs).

Это приложение может быть создано с использованием компилятора командной строки С# 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).
  • Файлы исходного кода С# указаны (app.cs и mainwindow.cs)
  • Параметр /reference используется для идентификации сборок .NET Framework 3.0 с типами, которые используются из исходного кода.

Хотя это приложение состоит из двух файлов исходного кода, команда line компиляция может быть использована для создания приложений с большим количеством сложность (см. Building from Command Line (CSharp)). Однако, компиляция командной строки не поддерживает компиляцию WPF приложения, которые включают расширяемый язык разметки приложений (XAML) файлы исходного кода разметки. Кроме того, компиляция в командной строке недостаточно надежна для поддержки полного набора требований к сборке которые требуются типичными приложениями WPF, включая конфигурацию управление и манифест приложения и развертывания ClickOnce поколение. Для поддержки более сложных требований к построению WPF приложений WPF интегрируется с MSBuild и расширяет его.

Обратите внимание, что MSBuild может быть лучшим вариантом для построения более сложных решений, и он поддерживается вне коробки большинством решений непрерывной интеграции.

Подробнее здесь: https://msdn.microsoft.com/en-us/library/aa970678(v=vs.85).aspx

Ответ 3

Если вы не возражаете против среды, в которой открывается верный способ для компиляции, используйте:

C: > devenv HacksWinSample.sln/build release

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

Используя этот подход, вы можете легко понять, что такое проблема и отладить его.