Archiv der Kategorie: .NET

Baue eine triviale WPF-Application mit Visual Studio

In Visual Studio:

File -> New -> Project
Installed -> Templates -> Visual C# -> Windows -> WPF Application

Ersetze den Code in MainWindow.xaml durch:

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApplication2"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525"
    >
    <StackPanel>
        <TextBlock Text="Enter some text">
        <TextBox x:Name="ResponseTextBox">
        <Button Content="OK" Click="OKButton_Click">
    </StackPanel>
</Window>

Ersetze den Code in MainWindow.xaml.cs durch:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    public string ResponseText
    {
        get { return ResponseTextBox.Text; }
        set { ResponseTextBox.Text = value; }
    }

    private void OKButton_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        MessageBox.Show("You said: " + ResponseText);
    }
}

Abgeleitet aus: http://stackoverflow.com/a/2796487/1777526

Dann einfach starten und ausprobieren.
Weitere Controls kann man durch drag&drop aus der Toolbox in den XAML-Viewer hinzufügen.

„CSC (0,0) Source file ‚xyz.cs‘ could not be found“

Problem:
Nachdem ich einige .cs-Dateien gelöscht hatte und eine .cs-Datei umbenannt habe, wollte ich die Pending Changes schließlich einchecken. Die vom Gated Check-in ausgelösten builds schlugen jedoch fehl mit der Fehlermeldung:
„CSC (0,0)
Source file ‚xyz.cs‘ could not be found“

2016-09-30 15_19_56-Microsoft Team Foundation Server

Lösung:
Im Gated Check-in Fenster die Optionen aufklappen und „Bypass validation build and check in my changes directly (requires permissions)“ anhaken. Dann den Build via normalem MS Build Server Build starten. Offenbar hatte der Gated Check-in einige Codeänderungen nicht mitbekommen und daher fehlende Source files angemahnt.

Debug XAML Designer in Visual Studio 2015

In Visual Studio 2015 wird der XAML Designer jeder .XAML-Datei in seinem eigenen Prozess ausgeführt, wobei jeder den gleichen Namen XDesProc.exe tragen. Manchmal erscheint nur eine weiße Box oder eine Exception flackert kurz auf, aber zum Debuggen reicht das alles nicht. Eine zweite Visual Studio Instanz muss zum Debuggen hinzugezogen werden.

  • Alle „XDesProc.exe“ Prozesse im Task Manager beenden.
  • Zwei Visual Studio (genannt ‚VS A‘ und ‚ VS B‘) Instanzen starten.
  • VS A wird später den Designer ausführen. VS B wird dessen Exceptions abfangen bzw. die Ausführung durch die Breakpoints stoppen lassen.
  • In VS B mit Debug -> Window -> ‚Exception Setting‘ am besten alle Exceptions anhaken, damit keine durchschlüpfen kann. Oder man setzt in VS B entsprechende Breakpoints in die MainWindow.xaml.cs, um die Ausführung dann dort zu stoppen.
  • In VS B Debug -> ‚Attach to Process‘ klicken. Dann auf die Process-Spalte klicken, um rückwärts alphabetisch zu sortieren:

visual studio debug xaml viewer

Folgende zwei Schritte müssen möglichst schnell nacheinander ausgeführt werden:

  • In VS A auf das MainWindows.xaml doppelklicken
  • In VS B „Refresh“ drücken und auf den „XDesProc.exe“ attachen BEVOR die Exception in VS A geworfen wird / bzw. die Anwendung am Breakpoint angekommen ist.

Dank an meinen Kollegen Hendrik.