Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von dr4g0n76
Thema: YAML von Swaggerhub(NSwag) wird richtig konvertiert, bis auf manche Enums
Am im Forum: Netzwerktechnologien

Hallo Kollegen,

habe folgendes Problem:

wenn ich eine YAML Datei (die das komplette Json enthält) runterlade von Swaggerhub, dann wird alles richtig konvertiert, bis auf die untenstehenden Enums.

Warum verstehe ich nicht:

xdjmd42n.0.cs(2553,182) : error CS0117: '"LoggingConfigurationMinimumSeverityToLog" enthält keine Definition für "_4".
djmd42n.0.cs(2817,210) : error CS0117: '"MessageHandlingConfigurationMinimumSeverityToLog" enthält keine Definition für "_4".
xdjmd42n.0.cs(2906,201) : error CS0117: '"SystemConfigurationExpectedMessageEncoding" enthält keine Definition für "_5".
xdjmd42n.0.cs(2957,232) : error CS0117: '"SecurityConfigurationSecurityOption" enthält keine Definition für "_0".

Diese 4 oberen werden nicht richtig konvertiert. Alles andere geht. Würde ich diese von Hand ändern, würde es auch funktionieren.

Weiss jemand woran das liegt? Wir haben sehr viele Enums. Nur bei diesen passiert das.

Wie immer, wenn ich eine bessere Lösung finde, poste ich sie hier.

Thema: Azure Devops: Automatische Notifications erhalten, wenn ein neuer Build mit Artifact vorhanden ist.
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Dachte ich mir. Denn ich habe auch in diese Richtung nichts gefunden.
Ich bin in dem Fall der Ausführende. :-) Und muss einfach die Lösungen finden, sollte es nichts geben, dann muss ich das natürlich weitergeben.

Bisher nur Dinge, die eben Notification gehen oder selber herunterladen lassen.

Bisher sieht mir das so aus, als müsste ich trotzdem bei der Lösung bisher bleiben, mit dem selber runterladen. Und mir quasi einen eigenen Event machen.

Ja den Download kann man ja quasi nur auf den Docker Container selbst machen. Was auch Sinn machen kann. Ist halt hier ein anderer Anwendungsfall.

Denn wenn der Build Output erstellt ist,
dann soll lokal ein Test anlaufen mit HW/SW usw. der alles mögliche im Test bereitstellt, damit wir die Qualität garantieren können.

und dafür wird das benötigt. Deswegen muss es eine Custom Lösung in dem Fall sein.

Danke für die Hilfe nochmal.

Auf dem Weg von vorher komme ich auch weiter. :-)

Thema: Azure Devops: Automatische Notifications erhalten, wenn ein neuer Build mit Artifact vorhanden ist.
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Abt
Webhooks sind ja "standardisierte Technik". Da ist keine Magic hinter.
Kannst ja nen Doc Deiner Wahl herziehen um zu sehen, wie man sie nutzt.

Wir machen automatisierte Tests über das Release Management bzw. über die Tests Plans; nicht manuell.
Daher kann ich zumindest über den Weg wenig beitragen. Kann Dir nur sagen wie man eben Webhooks in AzD auslöst ;-)

Ja, das stimmt schon.
Mir fällt noch was anderes gerade ein, was ja auch ginge.
Falls Azure das ermöglicht.

Kennst Du einen Mechanismus, der es erlaubt, dass das Package sofort automatisch von Azure runtergeladen wird, sobald ein Build erfolgreich durchgelaufen ist?
Dann könnten wir auch einen Filewatcher benuzen.

Edit:
Oder wäre das der Buildartifacts Task?

DownloadBuildArtifacts

Geht das auch ohne eigenen lokalen build agent?

Weil wenn das natürlich nur auf den Azure Container runtergeladen wird, bringt das nichts.
Würde das aber lokal runtergeladen, wäre das eine mögliche imho Lösung, die gut genug ist.

Thema: Azure Devops: Automatische Notifications erhalten, wenn ein neuer Build mit Artifact vorhanden ist.
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Danke @Abt. Der Link zum Ausführen der Webhooks ist sehr hilfreich. :-)
Den kann ich auf jeden Fall brauchen.

Teil a) Was gemacht werden soll

Ich kanns auch nochmal programmatisch erklären:

1.) Programm läuft (Console App), dass die Notification erhält:

Azure Devops hat einen neuen Build der Pipeline mit der ID xyz erfolgreich gebuildet.
Nur dann wird auch eine Notification gesendet, die das Console Programm empfangen kann.

2.) Die Artifakte von der Build Pipeline werden heruntergeladen und entpackt.
3.) Die einzige exe die darin ist wird gestartet. Automatisch.

Grund für das Programm:

Es soll ein vollautomatisches Testsystem erstellt werden,
das immer den neuesten Build mit der exe in Zusammenhang ausführt und testet.

Es soll auch dann funktionieren, wenn keiner da ist.

Teil b) Was gelöst werden muss, damit a) überhaupt für uns machbar wird:

Wie kann man dazu einen Webhook benutzen? Falls das überhaupt der richtige Ansatz ist.
Sollte man überhaupt einen Webhook benutzen?
Es könnte ja auch sein eine Azure Function ist besser?
Oder das Event Grid?

Das bin ich gerade alles am rausfinden und weiss noch nicht, was das beste dabei ist...

Vor allem ob es nicht schon eine Standardnotification gibt, die einfach abgefragt werden kann,
evtl. auch ohne, dass man noch einen neuen Service integrieren muss?

Das weiss ich noch nicht. :-)

Thema: Azure Devops: Automatische Notifications erhalten, wenn ein neuer Build mit Artifact vorhanden ist.
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wir haben gerade die Herausforderung bei uns im Projekt, dass wir Notifications brauchen,
wenn auf Azure ein neuer Build vorliegt, der die Artefakte enthält.

Die sollen dann von einem Programm empfangen werden (Console Anwendung), die dann den Build auf den Rechner lokal herunterlädt.

Jetzt ist die Frage, wie wir das machen können.

Dazu bisher meine Recherchen:

Folgendes habe ich dazu (bisher) in Betracht gezogen, weil ich denke dass eine der Kategorien zumindest helfen sollte diese Notifications/Events zu empfangen.

Also entweder ginge das vermute ich über:

- Azure Functions
- Azure Notification Hubs
- Azure Web Hooks (bisher sieht mir das am vielversprechendsten aus)

Hier gibt's ein Beispiel das helfen könnte:
https://andrewlock.net/creating-my-first-azure-functions-v2-app-a-webhook-and-a-timer/


Was ebenfalls möglich wäre, als Notlösung:

In bestimmten Abständen pollen.
Mit Rest API den letzten Build holen ()

Wie würdet ihr das angehen?

ich werde auf jeden Fall versuchen das zu lösen und dann wie immer die Lösung hier posten.
und dann davon den Artifact herunterladen.

Thema: [gelöst] Wie kann ich einen NTP Server selbst programmieren oder wo gibt es Unterlagen dazu?
Am im Forum: Rund um die Programmierung

Danke @FZelle.

Du hast Recht. Hab ich total übersehen, diesmal.

Hab einige gefunden.

Hier ein Beispiel:
https://github.com/NightQnEarth/SntpClient-Server

Thema: [gelöst] Wie kann ich einen NTP Server selbst programmieren oder wo gibt es Unterlagen dazu?
Am im Forum: Rund um die Programmierung

Hat jemand von euch schon mal einen NTP Server selbst programmiert und/oder weiss, wo es Unterlagen dazu im Internet gibt?

Hab jetzt schon einige Tage immer wieder mal gesucht und finde keinen.

Grund für den Bedarf:

Unser Test System soll einen eigenen NTP Server zur Verfügung stellen für ein automatisiertes Testsystem.

Thema: yml Pipeline auf Azure hochladen, dass automatisch eine Build Pipeline erstellt & ausgeführt wird?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ist folgendes möglich:

Programmatisch eine lokal gespeicherte yml Pipeline so upzuloaden auf Azure,
dass automatisch eine Build Pipeline erstellt und ausgeführt wird?

Klar, upload bis alles oben im Repository ist, geht auch mit den git cmd Befehlen.
Nur, es wird natürlich nicht automatisch das YAML als Pipeline ausgewählt.

Hat das jemand schon mal hinbekommen oder weiss wie und ob das überhaupt geht?
Mir würde schon ein Link reichen.

P.S.: Wie immer, wenn ich eine Lösung gefunden habe, poste ich sie selbst hier.

Thema: xUnit, wie TrxLogger benutzen bzw. Trx Datei schreiben?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Es wurde gewünscht, dass wir einen eigenen TestRunner haben.
Der soll die Tests ausführen.
Basierend auf XUnit.
Das funktioniert.
Die Tests liegen in einer anderen Assembly.

Das gewünschte Verhalten wäre, dass die trx (Test Results) Datei geschrieben wird,
während der TestRunner ausgeführt wird, was ja natürlich hier nicht im Code vorhanden ist.

Jetzt wäre die Frage, ob von https://www.nuget.org/packages/Microsoft.TestPlatform.Extensions.TrxLogger/
z.B. der Logger irgendwie benutzt werden kann, um die trx Datei zu schreiben?

Aber anscheinend kann xUnit - soweit ich recherchiert habe - aber nicht auf die Events von diesem zugreifen.

Das heisst:

Wenn ich wüsste, dass das so nicht geht (xUnit + Microsoft Object Model + Extensions TrxLogger)
müsste ich einen eigenen Mechanismus implementieren.

Denn sonst würden ja einmal die Tests ausgeführt.

Und dann in der Kommandozeile mit


dotnet test --logger trx --no-build /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=.\coverage\ Codan.Argus.AcceptanceTests

Würden die Tests noch einmal ausfgeführt. (hier sorgt der Zusatz --logger trx dafür, dass die trx Datei geschrieben wird.

Vielleicht ist es jetzt klarer? :-)

Thema: xUnit, wie TrxLogger benutzen bzw. Trx Datei schreiben?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Kollegen.

Ich hab hier einen Assembly Test Runner, der den Mechanismus von xUnit benutzt (falls ihn jemand benutzen möchte). Es ist auch unbedingt gewünscht, dass wir diesen selber beeinflussen können.
Soweit so gut. (Die Tests sind in einer eigenen Assembly und können durch Angabe des Filenamens der Assembly ausgeführt werden.

Nur, wenn ich den jetzt ausführe, wird ja nicht einfach standardmässig ein *.trx File geschrieben.

Wenn ich aber


dotnet test --logger trx --no-build /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=.\coverage\ Codan.Argus.AcceptanceTests

ausführe, dann schon. Vorausgesetzt die richtigen NuGet packages wurden zur TestAssembly hinzugefügt.

(Danach wird dann der Coverage Report mit

reportgenerator "-reports:C:\Code\TestEnvironment\Codan.Argus.AcceptanceTests\coverage\coverage.opencover.xml" "-targetdir:.\coverage"
erzeugt)

Nur, wenn ich diesen Befehl benutze, ist zwar alles gut bis auf eine Sache:
Die Tests werden ja dann nochmal ausgeführt, einmal durch meinen eigenen TestRunner und einmal eben durch die Kommandozeile.

Wie bekomme ich also den Mechanismus genutzt, von dotnet test -logger trx?

Oder muss ich dann quasi "von Hand" einen trx Logger für jeden Test der ausgeführt wird selbst aufrufen?

EDIT: Wenn ich selber vorher eine Lösung finde, poste ich sie natürlich hier.


using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Xunit.Runners;

namespace Codan.Argus.TestEnvironment
{
    public class ExtendedAssemblyRunner : IDisposable
    {
        private AssemblyRunner _assemblyRunner = null;
        
        public delegate void DiscoveryCompleteEventHandler(object sender, DiscoveryCompleteInfo e);
        public event DiscoveryCompleteEventHandler DiscoveryCompleteEvent;

        public delegate void ExecutionCompleteEventHandler(object sender, ExecutionCompleteInfo e);
        public event ExecutionCompleteEventHandler ExecutionCompleteEvent;

        public delegate void TestStartingEventHandler(object sender, TestStartingInfo e);
        public event TestStartingEventHandler TestStartingEvent;

        public delegate void TestSkippedEventHandler(object sender, TestSkippedInfo e);
        public event TestSkippedEventHandler TestSkippedEvent;

        public delegate void TestFailedEventHandler(object sender, TestFailedInfo e);
        public event TestFailedEventHandler TestFailedEvent;

        //public delegate void 

        static object consoleLock = new object();
        private static ManualResetEvent finished = new ManualResetEvent(false);
        private string _testAssembly = null;

        private ExecutionCompleteData _executionCompleteData = null;

        public ExtendedAssemblyRunner(string testAssembly)
        {
            _testAssembly = testAssembly;

            _assemblyRunner = AssemblyRunner.WithAppDomain(testAssembly);
        }

        public ExecutionCompleteData ExecutionCompleteData 
        {
            get { return _executionCompleteData; }
        }
        
        private void WithAppDomain(string testAssembly)
        {
           _assemblyRunner = AssemblyRunner.WithAppDomain(testAssembly);
        }

        public void Start(string testAssembly = null)
        {
            if (testAssembly == null) testAssembly = _testAssembly;

            _assemblyRunner.OnDiscoveryComplete = OnDiscoveryCompleteEvent;
            _assemblyRunner.OnExecutionComplete = OnExecutionCompleteEvent;
            _assemblyRunner.OnTestFailed = OnTestFailedEvent;
            _assemblyRunner.OnTestSkipped = OnTestSkippedEvent;
            _assemblyRunner.OnTestStarting = OnTestStartingEvent;

            _assemblyRunner.Start(typeName: null);

            finished.WaitOne();
            finished.Dispose();
        }

        public AssemblyRunnerStatus Status
        {
            get { return _assemblyRunner.Status; }
        }

        protected void OnDiscoveryCompleteEvent(DiscoveryCompleteInfo info)
        {
            lock (consoleLock)
            {
                if (DiscoveryCompleteEvent != null)
                {
                    DiscoveryCompleteEvent(this, info);
                }

#if DEBUG
                Debug.WriteLine("Discovering...");
#endif
            }
        }


        protected void OnExecutionCompleteEvent(ExecutionCompleteInfo info)
        {
            lock (consoleLock)
            {
                if (ExecutionCompleteEvent != null)
                {
                    ExecutionCompleteEvent(this, info);
                }
#if DEBUG
                Debug.WriteLine(
                    $"Finished: {info.TotalTests} tests in {Math.Round(info.ExecutionTime, 3)}s ({info.TestsFailed} failed, {info.TestsSkipped} skipped)");
#endif
                finished.Set();
            }
        }

        protected void OnTestFailedEvent(TestFailedInfo info)
        {
            lock (consoleLock)
            {
                if (this.TestFailedEvent != null)
                {
                    TestFailedEvent(this, info);
                }

#if DEBUG
                Console.ForegroundColor = ConsoleColor.Red;
                Debug.WriteLine("[FAIL] {0}: {1}", info.TestDisplayName, info.ExceptionMessage);
                if (info.ExceptionStackTrace != null)
                {
                    Debug.WriteLine(info.ExceptionStackTrace);
                }

                Console.ResetColor();
#endif
            }
        }

        protected void OnTestStartingEvent(TestStartingInfo info)
        {
            lock (consoleLock)
            {
                if (this.TestStartingEvent != null)
                {
                    TestStartingEvent(this, info);
                }
#if DEBUG
                Console.ForegroundColor = ConsoleColor.Yellow;
                Debug.WriteLine("[TESTSTARTING] {0}: {1}", info.TestDisplayName, info.MethodName);
                Console.ResetColor();
#endif
            }
        }

        protected void OnTestSkippedEvent(TestSkippedInfo info)
        {
            lock (consoleLock)
            {
                if (this.TestSkippedEvent != null)
                {
                    TestSkippedEvent(this, info);
                }
#if DEBUG
                Console.ForegroundColor = ConsoleColor.Yellow;
                Debug.WriteLine("[SKIP] {0}: {1}", info.TestDisplayName, info.SkipReason);
                Console.ResetColor();
#endif
            }
        }

        public void Dispose()
        {
            _assemblyRunner.Dispose();
            _assemblyRunner = null;
        }
    }
}

P:S.:

Thema: History aka System.Rev + System.Reason auf Azure Devops ist leer (WorkItemTrackingHttpClient)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich werds jetzt einfach mit einem anderen Befehlsset aus der Documentation von Microsoft lösen. Welches weiss ich noch nicht. Aber die Möglichkeiten sind ja da.

Deswegen kann das Thema als gelöst betrachtet werden.

Thema: mycsharp.de ist nun auf Azure umgezogen
Am im Forum: Ankündigungen

Auch von mir: ebenfalls danke dafür. :-)

Thema: [gelöst] Phsysisches Ubuntu virtualisieren, als VM
Am im Forum: Smalltalk

Das Problem ist gelöst, danke. :-)

Danke für die Antworten. Auf diese Lösungen war ich inzwischen (seit gestern), ebenfalls gestossen.

Mein Ansatz war jetzt:

Ein Aktuelles Ubuntu ISO Image in der VM zu laden (mounten als Iso)
und dann einfach die Scripte, die ich für den Build brauche rüberzukopieren und für ssh die selben Datein rüberzukopieren.

Dann kann nämlich auch übers Netzwerk und mit VCenter geklont werden. Wie man möchte.

Natürlich mussten dann die Rechte für SSH nochmal neugesetzt werden.

Jetzt läuft das ganze. :-)

Thema: [gelöst] Phsysisches Ubuntu virtualisieren, als VM
Am im Forum: Smalltalk

Ich habe eine Ubuntu Installation (phsyikalischer Rechner), die ich entweder:

- in eine ISO konvertieren möchte (falls dieser Zwischenschritt nötig ist)
- oder eben in eine VM (Ziel)

Ich habe bisher mit Acronis ein tib File gesichert.
Aber alle Versuche dieses bisher in ein Image zu konvertieren, sind fehlgeschlagen.

Ich habe auch versucht eine neue VMWare zu erstellen (als Acronis Boot Image, was soweit funktioniert hat)
und darin das *.tib File als Recovery auszuwählen und dann wieder herzustellen.

Ich konnte aber nirgends in den Optionen auswählen, wohin ich das *.tib File recovern will.
Was ich ja in der VM auf die VM machen möchte. Von mir aus auch auf eine weitere virtuelle Harddisk.
Aber dann hatte ich ebenfalls keine Option etwas auszuwählen.

Wie kann ich das denn jetzt machen?

Aber ich habe schon ein paar Tage lang gesucht.
Der oben beschriebene Vorschlag kam am nächsten ans Ziel, habe aber immer noch kein virtualisiertes Ubuntu vom phsyikalischen Rechner.

Vielleicht weiss ja jemand wie das geht?

Wenn ich selber eine Lösung finde, werde ich sie hier natürlich posten.

Thema: History aka System.Rev + System.Reason auf Azure Devops ist leer (WorkItemTrackingHttpClient)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich versuche mit folgender Methode WorkItems von Azure Devops auszulesen.
Was soweit auch funktioniert.

Allerdings ist dann die History leer.

Ich habe schon herausgefunden, wie das z.B mit Rest API (WIT) für Azure Devops funktioniert.

Aber in dem Beispiel hier, wollte ich - falls das möglich ist - nicht mehrere Dinge mischen. Sondern einfach nur die normale WebApi aus eben diesem Namespace benutzen.
Bisher habe ich aber keinen Befehl gefunden der funktioniert.


public async Task<List<WorkItem>> RunQuery(string query, params string[] fields)
{
        var uri = Connect(out var project, out var credentials);

        //create a wiql object and build our query
        Wiql wiql = new Wiql()
        {
            Query = query
        };

        //create instance of work item tracking http client
        using (WorkItemTrackingHttpClient workItemTrackingHttpClient = new WorkItemTrackingHttpClient(uri, credentials))
        {
            //execute the query to get the list of work items in the results
            WorkItemQueryResult workItemQueryResult = await workItemTrackingHttpClient.QueryByWiqlAsync(wiql);

            //some error handling                
            if (workItemQueryResult.WorkItems.Count() != 0)
            {
                //need to get the list of our work item ids and put them into an array
                List<int> list = new List<int>();
                foreach (var item in workItemQueryResult.WorkItems)
                {
                    list.Add(item.Id);
                }
                int[] resultArray = list.ToArray();

                //build a list of the fields we want to see
                //get work items for the ids found in query
                var workItems = await workItemTrackingHttpClient.GetWorkItemsAsync(resultArray, fields, workItemQueryResult.AsOf);
                return workItems;
            }

            return null;
        }
}

Weiss jemand von euch zufällig, wie man das machen kann?

Weil ansonsten gäbe es scheinbar noch die Möglichkeit für Fields System.Rev auszulesen und dann für jede Revision einfach System.Reason abzufragen.

d.h. wenn es 10 Revisionen gäbe,
wäre es 10 mal:

Pseudo Code:


string historyText = null;
for(int foractualrev=0;foractualrev<System.Rev;foractualrev++)
{
    historyText += Read(System.Reason, foractualrev) + Environment.NewLine;
}

Aber ich weigere mich momentan noch zu glauben, dass ich 10 Zugriffe hierfür extra brauchen würde.

Bestimmt habe ich einfach nur die Funktion (die ebenfalls auch NICHT-obsolet ist) übersehen.

P.S.: Wenn ich es selbst rausfinde, poste ich natürlich die Antwort hier.

Thema: Azure DevOps Server: Build von ASP.NET Projekt schlägt nach Update fehl
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo.

Was sein kann ist, dass Devenv.exe also Visual Studio das ganze noch richtig buildet.
Aber msbuild würde schon vorher fehlschlagen.

Es lohnt sich imho also das ganze mit msbuild.exe lokal auszuprobieren.

Ansonsten gibt es noch die Alternative einfach DevEnv.exe als Build einzusetzen.

Ich hoffe das hilft Dir weiter. :-)

P.S.: Auch wenn es schon eine Weile her ist, Deine Frage.

Thema: Azure Devops: Warum werden nach Installation von Extension "Analytics View" Titel mit "*" gezeigt?
Am im Forum: Smalltalk

Danke, ich betrachte somit das Thema als "gelöst". :-)

Thema: Azure Devops: Warum werden nach Installation von Extension "Analytics View" Titel mit "*" gezeigt?
Am im Forum: Smalltalk

Hallo Kollegen. :-)

Ich hatte auf Azure Devops eine Microsoft Extension installiert, die Analytics View.

(Von hier: Azure Devops: Microsoft Analytics)

Jetzt wird der Titel links mit einem Sternchen hinter dem Namen angezeigt, wie oben in der Überschrift, bzw. dem unten angehängten Bild.

Weiss jemand den Grund dafür?

Ich soll das rausfinden. Habe aber bisher nichts gefunden, weder in Foren noch über die Google Suche.
Vielleicht was das jemand von euch.

Thema: Azure Devops: Wie TRX File in XML konvertieren?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

@Gfoidl:

Zitat
Wie Abt schon schreibt, ist trx auch xml ;-)

stimmt absolut, hätte mich damals genauer ausdrücken sollen, ich hätte ein anderes XML-Format gebraucht, mit der Kommandozeile, die ich aufgerufen hatte. Das hat sich jetzt aber vorerst gelöst.

Danke nochmals für alle diese Antworten. Und ich werde auf jeden Fall darauf zurückkommen.

@Abt:
Zitat
Übrigens, so machen wir das: .NET CORE Code Coverage done right

Das Löst direkt einer meiner nächsten Aufgaben teilweise mit. Danke dafür.

P.S.: Wenn sich das Thema demnächst lösen sollte, dann werde ich dem Titel ein [gelöst] mitbeifügen. :-)

Thema: Azure Devops & Lokal: NuGet-~ bzw. Assembly-Referenzen automatisch überprüfen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Was wir haben möchten:

Bei uns soll ein Quality-Gate erstellt werden, das zur Aufgabe hat NuGet-Referenzen zu erstellen. Zuerst lokal (eigener Rechner). Dann online (Azure).

Warum? Damit wir automatisch überprüfen können, dass beim Online Build
nicht Probleme auftreten, die wir schon vor dem Check-In finden hätten können.

Grund dafür:

Von der Entwicklungsabteilung wurde eine Solution gebaut, die normalerweise in Ordnung sein sollte.
Aber im Visual Studio treten gelbe Warndreiecke für die NuGet-Referenzen auf.
Leider kann im Visual Studio keine Fehlermeldung gesehen werden.

Wie macht ihr das bisher?

Was ich bisher gefunden habe (abgesehen von NDepend, was ich bei dieser Suche vorerst ausschliesse):

- Appcelerate
(ebenfalls als NuGet Package), um das zu überprüfen
wird aber anscheinend schon sehr lange nicht mehr weiterentwickelt)

- Selbst eine Lösung bauen, die die NuGet-References auflöst.
Dazu gibt es auch schon ein anfängliches Beispiel von Microsoft, das eine gute Grundlage
bietet

- Reference Analyzer Extension vom Visual Studio Marketplace.

Thema: Azure Devops: Wie TRX File in XML konvertieren?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
Die dotnet cli in Azure DevOps erzeugt von Haus aus ein TRX File (auch mit XUnit, ausser Du hast eine uralte CLI Version).
Die Code Coverage und die Testergebnisse werden automatisch gepublished und hängen anschließend dem Build an inkl. Reporting.

Das stimmt und das Kommando, dass ich integriert habe soll eine Basis für eine Code-Coverage Report erstellen. Anscheinend geht das nur mit dieser Command-Line,
zumindest habe ich noch nicht so viel Erfahrung, dass ich wüsste wie ich es besser mache, solange ich Tasks verwende und nicht die YAML Scripts direkt.
Zitat
Das Kommentar mit Visual Studio habe einen Bug ist mir nicht klar.
Du buildest hier offensichtlich .NET Core und dazu braucht man keinen VS Task in Azure DevOps.
VS brauchst Du nur für .NET Framework oder Mixed Solutions. Dann darfst Du aber nirgends dotnet cli Commands verwenden.

Die Leute, die bei uns in der Entwicklung arbeiten haben eine Mixed Solution kreiert.
Enthält also .NET Framework und .NET Core Projekte.
NuGet Referenzen werden jetzt nicht richtig aufgelöst, trotzdem buildet das Projekt auch bei mir und jemand anderem.

Nur, im Visual Studio ist auch ganz klar zu sehen, dass etwas nicht stimmt:
Die NuGet Pakete haben gelbe Warndreiecke.
Die Aussage mit dem Bug bezieht sich darauf, dass u.a. keine Fehlermeldung erscheint, warum die Referenzen denn nicht gefunden werden.

Plus, dass jeder einzelne unterschiedliche Restore Versuch (zumindest die, die wir kennen und versucht haben) fehlgeschlagen ist.
Ergebnis: auch nach dem Schliessen von Visual Studio und der Solution und Restart:
Problem besteht weiterhin.
Zitat
Hier paar YAML Templates von mir, die in quasi allen meinen/unseren Projekten Verwendung finden (inkl XUnit, Code Coverage und TEst Reporting - aber keine SonarQube Coverage).https://github.com/BenjaminAbt/AzureDevOps-YamlBuildSamples

Danke, Dir. :-) Das ist garantiert sehr hilfreich und hilft mir bestimmt ebenfalls zu sehen, wo ich etwas zu umständlich gemacht habe oder noch ganz einfach verbessern kann.
Bin hier noch viel am (Dazu-~)Lernen.
Zitat
Oder geht es Dir um einen zusätzlichen Export? Das geht aus Deinem Beitrag leider null raus.
Wenn ja: die Testergebnisse lassen sich via REST API laden ( https://docs.microsoft.com/en-us/rest/ap...devops-rest-5.0)
Das ist auch der empfohlene Weg von Azure DevOps für Exports.

Man hatte sich vorgestellt, dass wir eben diesen Output von diesem Tool verwenden können (Extension in Azure Devops):
https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator
(s. auch angehängtes Bild)

Dafür hatte ich die Kommandozeile gemacht.
Und soweit ich gestern Abend noch herausgefunden habe, weil die NuGet Packages Fehler haben und die Referenzen nicht richtig aufgelöst werden,
buildet das Projekt zwar noch in Visual Studio,
nicht aber wenn ich die Kommando-Zeile verwende, die ich gepostet habe.

Nur noch mal zur Erklärung, nicht weil ich auf dem Pfad bleiben möchte:

und deshalb findet er eben Xunit nicht. Lasse ich die Zeile mit dem XML weg, funktioniert alles in der Kommandozeile.

Versteh mich nicht falsch, wenn es anders einfacher funktioniert,
bin ich jederzeit bereit davon abzurücken, wie ich es bisher versucht habe.
Mir geht es nur um eine Lösung, nicht um Biegen und Brechen meinen Weg zu versuchen,

deshalb nochmal danke für Deinen Input.

Zitat
Interessehalber: Was soll das denn für eine Zertifizierung, die eine manuelle Unterschrift erfordert und für die nicht Azure DevOps Gates des Release Managements verwendet werden kann?

[QUOTE
Damit wir später den Test-Report unterschreiben lassen können und alles seinen Gang laut Zertifizierung geht.
[/quote]


Finde ich selbst auch etwas gewöhnungsbedürftig, soweit ich das bisher verstehe ist das so. Medical Bereich.

Zitat
Gates sind genau für sowas wie Freigaben gedacht.

Zitat von https://docs.microsoft.com/en-us/azure/devops/pipelines/release/approvals/gates?view=azure-devops:
....
Seek approvals outside Azure Pipelines. Notify non-Azure Pipelines users such as legal approval departments, auditors, or IT managers about a deployment by integrating with approval collaboration systems such as Microsoft Teams or Slack, and waiting for the approval to complete.
....

Und das funktioniert problemlos mit Signaturdiensten für die digitale Freigabe via Signaturen.
Eine externe Unterschrift ist ja im Prozess nicht sicher abbildbar; und nicht-sichere Prozessschritte dürfte prinzipiell einer Pipeline Zertifizierung widersprüchlich sein.

Nicht die Pipeline wird zertifiziert. :-)
Sondern die Prozesse hier müssen einen gewissen Ablauf haben.

Ich hoffe, dass macht es etwas klarer.

Ich denke sobald die XUnit-Referenzen gefunden werden,
funktioniert auch alles wie gedacht und ich kann die wichtigen Stellen von Deiner Pipeline übernehmen.

Das hat sehr geholfen.

Thema: Azure Devops: Wie TRX File in XML konvertieren?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Das WARUM
Wir brauchen eine Code Coverage und einen Test-Report, die vom TRX file abgeleitet werden sollen.
Damit wir später den Test-Report unterschreiben lassen können und alles seinen Gang laut Zertifizierung geht.

Dabei sind Probleme aufgetreten.

Ausgangssituation:
Ich habe mit diesem Befehl die Vorbereitung für eine Code-Coverage mit einem TestProjekt gemacht, um zu sehen, ob das so funktionieren würde:

dotnet test TestProject.csproj --logger "trx;LogFileName=TestResults.trx" --logger "xunit;LogFileName=testResults.xml" /p:CollectCoverage=true /p:CoverletOutput=BuildReports\Coverage\ /p:CoverletOutputFormat=cobertura /p:Exclude="[xunit.*]*

Mit diesem Parameter bekomme ich eben die Fehlermeldung, dass kein XUNIT gefunden wird, aufgrund des Bugs in Visual Studio.

Was jetzt allerdings passiert ist, dass XUnit nicht gefunden wird, aufgrund eines Bugs in Visual Studio.

Mit einem Test-Projekte das ich LOKAL laufen lassen konnte (nicht das produktive) funktioniert es.

Workaround

Mein Workaround soweit ist: ich lasse den Teil mit
--logger "xunit;LogFileName=testResults.xml"
der fehltschlägt weg.
Dann habe ich eben nur ein TRX file.
dotnet test TestProject.csproj --logger "trx;LogFileName=TestResults.trx" --logger "xunit;LogFileName=testResults.xml" /p:CollectCoverage=true /p:CoverletOutput=BuildReports\Coverage\ /p:CoverletOutputFormat=cobertura /p:Exclude="[xunit.*]*

Benötigte Lösung

Was ich jetzt allerdings brauche ist eben ein Mechanismus der mir per Console oder Task (muss in Azure Devops möglich sein) das TRX file in XML umwandelt.

Oder eben ein Mechanismus der in Azure Devops direkt ein Report vom XML file machen kann.

Weiss jemand wie das geht oder hatte schon dasselbe Problem?

Oder ist das Ganze noch viel einfacher und ich suche nach der falschen Stelle?

Thema: msbuild.exe zusammen mit XAML Properties schlägt fehl
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Danke Lando.
Ich stimme Dir zu.

Mit dieser Codezeile hat es dann funktioniert:

cd ..
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe" "ProjectName.sln" /t:restore /t:build /nologo /nr:false /flp:"logfile=ProjectName.sln.log;verbosity=diagnostic"
set /p DUMMY=Hit ENTER to continue...

Thema: msbuild.exe zusammen mit XAML Properties schlägt fehl
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

using System.Windows.Controls;

namespace xxxxxxxxxxxxxxxx.Maintenance.Views
{
    /// <summary>
    /// Interaction logic for ViewA.xaml
    /// </summary>
    public partial class ViewA : UserControl
    {
        public ViewA()
        {
            this.InitializeComponent();
        }
    }
}
Hinweis: Das ist die View.xaml.cs Datei

Es sind 4 Komponenten die so aussehen und er versucht das bei jeder von denen.

Die ViewA selbst sieht so aus:
<UserControl x:Class="xxxxxxxxxxxxxxxx.Maintenance.Views.ViewA"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:xxxxxxxxxxxxxxxx..Maintenance.Views"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300"
             xmlns:prism="http://prismlibrary.com/"
             prism:ViewModelLocator.AutoWireViewModel="True" >
    <Grid>
        <TextBlock Text="{Binding Message}"
                       HorizontalAlignment="Center"
                       VerticalAlignment="Center" />
    </Grid>
</UserControl>

EDIT: Fehlermeldung nochmal hier angehängt:
Fehler
"C:\Sources\Blub\ProjectName.sln" (restore;compile Ziel) (1) ->
"C:\Sources\Blub\Blub.Management.Handler.Error\Blub.Management.Handler.Error.csproj" (compile Ziel) (13:6) ->
(CoreCompile Ziel) ->
Views\ErrorView.xaml.cs(12,13): error CS0103: Der Name "InitializeComponent" ist im aktuellen Kontext nicht vorhanden. [C:\Sources\Blub\Blub.Management.Handler.Error\Blub.Management.Handler.Error.csproj]

Thema: msbuild.exe zusammen mit XAML Properties schlägt fehl
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Das Projekt das ich kompilieren will, kompiliert mit VS2017 (devenv.exe) einwandfrei.

Das Projekt soll aber online mit Azure Devops und einem msbuild kompiliert werden.
Um lokal die Fehler, die online auftreten nachzuvollziehen, konnte ich mir bisher so behelfen.

Wenn ich aber versuche mit folgendem script lokal zu kompilieren
(ich befinde mich in dem Ordner in der Command-Line, wo sich auch die sln befindet):

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe" "Projectname.sln" /nologo /nr:false /fl /flp:"logfile=Projectname.sln.log;verbosity=diagnostic" /t:restore /t:compile /p:NoWarn=MC3072 /p:Config=debug /nologo /nr:false

(Das Projekt soll aber online mit Azure Devops und einem msbuild kompiliert werden.
Um lokal die Fehler, die online auftreten nachzuvollziehen, konnte ich mir bisher so behelfen.)

Das wird zwar eigentlich auch alles ausgeführt, nur bekomme ich eben für die XAML Properties in diesem Projekt Fehler.

u.a.:

"C:\Sources\Blub\ProjectName.sln" (restore;compile Ziel) (1) ->
"C:\Sources\Blub\Blub.Management.Handler.Error\Blub.Management.Handler.Error.csproj" (compile Ziel) (13:6) ->
(CoreCompile Ziel) ->
Views\ErrorView.xaml.cs(12,13): error CS0103: Der Name "InitializeComponent" ist im aktuellen Kontext nicht vorhanden. [C:\Sources\Blub\Blub.Management.Handler.Error\Blub.Management.Handler.Error.csproj]

Die XAML Dateien erstelle ich nicht selbst.
Es sieht einfach so aus, als ob mir ein Schalter fehlt, um die Referenzen die die XAML Files enthalten aufzulösen, was ja Devenv.exe anscheinend offensichtlich "von alleine" macht.

Weiss jemand was für einen Schalter ich da bei msbuild.exe noch angeben kann?

P.S.: Würde nicht hier posten, wenn ich nicht schon fast 2 Tage nach der Problemlösung online gesucht hätte + stundenlanges probieren. Vielleicht ist ja die Lösung ganz einfach?

Thema: [gelöst] Azure DevOps: Project build online hosted on VS2017 - NuGet Restore schlägt fehl.
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Das wäre dann in diesem Fall ziemlich viel für den einzelnen zu lesen.
Was quasi aufgetreten ist:

Die NuGet-Packages wurden nicht restored und deswegen kamen natürlich sehr viele Folgefehler vom Build, weil ja eben die Packages fehlen.

Bisherige Lösung:
Ich habs jetzt so gelöst, dass ich den .NET-Build-Task, den NuGet-Installer Task und den NuGet-Restore-Task durch einen msbuild-Task ersetzt habe, den es ja auch noch gibt.

Habe diesem den Parameter

/t:restore mitgegeben.

Plus alles angeklickt im selben msbuild task was mit restore zu tun hat.
Ab dann hat es funktioniert.

Hinweis: Das funktioniert zwar, führt aber zu einer Warnung, weil dieses Vorgehen eigentlich deprecated ist und es so machen soll, wie ich es zuvor versucht habe.

EDIT: Die Warnung verschwindet, wenn man das Häkchen bei restore wegmacht.
Weil das wird ja explizit in /t:restore so schon übergeben. :)

Thema: [gelöst] Azure DevOps: Project build online hosted on VS2017 - NuGet Restore schlägt fehl.
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen. :-)

Wir haben eine Solution in der Firma, das einige Solution Folder, .NET Core Projekte und mit .NET Standard und so weiter enthält.

Mit Devenv lokal und mit msbuild.exe /t:restore plus weitere Parameter buildet die Solution auch.

Nur, wenn ich das Ganze jetzt auf Azure Devops probiere, dann können die NuGet-Packages nicht restored werden.

Obwohl die Pipeline einen NuGet-Installer und dann ein NuGet-Restore enthält.

Hat jemand schon ähnliche Erfahrungen gemacht?

Eigentlich suche ich gerade nur den Schalter, was ich bei Azure Devops machen muss, damit quasi ein NuGet-Restore wie mit obigem msbuild.exe Command passiert.

Aber der NuGet Restore task scheint es nicht zu machen.... Der schlägt eben immer fehl.
Das gilt es zu lösen.

Wenn ich die Lösung selbst finden sollte, werde ich es hier posten.

Thema: Existiert ein Programm mit dem man Dialoge im Comic-Style erstellen kann?
Am im Forum: Smalltalk

Existiert eigentlich ein Programm mit dem man Dialoge im Comic-Style erstellen kann?
Muss keine Freeware sein. Würde auch gerne dafür zahlen, wenn das Programm einfach genau diesen Zweck erfüllt.

Ich habe 2 Lösungen gefunden, die nur online funktionieren, die eine sieht sehr schlecht aus.
Die andere hat folgende Issues:

- Wenn man sich einmal vertippt, kann man von vorn anfangen.
- Die Grafiken bzw. der Dialog können nicht als Bild runtergeladen werden.
Man muss dann also immer einen Screenshot machen.
- An einem anderen Tag weiterarbeiten ist nicht möglich.

Es gibt online welche, die genau das machen.
Nur die müssen dann mit relativ viel Aufwand immer vom Screen kopiert werden.

Alternativ wäre es auch ok, wenn etwas online existiert mit dem man dann die Dialog einfach als Bild runterladen kann.

Die Sprechblase sollte automatisch auf die Grösse des Textes angepasst werden.

Weiss da jemand was?

Thema: Azure DevOps Community Launch Event - Wallisellen
Am im Forum: Szenenews

Also ich bin auf jeden Fall dabei, wenn wieder eins stattfindet. :-)

Thema: Software Ingenieur/In .NET [Schweiz]
Am im Forum: Jobbörse

Vorab: Ihr könnt gerne auch eine PM an mich schicken, dann stelle ich den Kontakt her.

Die CODAN ARGUS AG — Baar (Schweiz) sucht einen Software Ingenieur/In .NET ab sofort.
(Original-Inserat: https://www.jobs.ch/en/vacancies/detail/8649079/)

Software Ingenieur/In .NET
Im Medizinaltechnikumfeld


Ihre Aufgaben:

Neuentwicklung von Desktop-Software und Server-Software für unsere Infusionspumpen und deren Einbindung in die Spitalnetzwerke unter Einbezug neuer Trends wie IoT und Big Data

Erstellen von Spezifikationen und Software Designs anhand von Anforderungen
Mitarbeit an der System- und Software-Architektur
Zusammenarbeit mit Requirement- und Test-Ingenieuren sowie dem Risk Management
Unterstützung des Supports bei der Inbetriebnahme und Fehlersuche

Ihre Qualifikationen:

Studium in Informatik, Technische Informatik, oder Elektrotechnik mit Fachrichtung
Informatik
Erfahrung mit C# und .NET
Gute Deutsch- und Englischkenntnisse in Wort und Schrift
Sie sind ein Teamplayer, analytisch stark, selbständig, und denken strukturiert und zielorientiert

Weitere Qualifikationen sind von Vorteil:
Erfahrung mit der Windows Presentation Foundation (WPF)
Erfahrung mit ASP.NET
Erfahrung mit Datenbanken, ADO.NET, Entity Framework
Erfahrung mit Connectivity (Schnittstellen, Protokolle, Messaging)
Grundlegende Linux-Kenntnisse

Wollen Sie sich beruflich in einem spannenden Umfeld der Medizintechnik weiterentwickeln? CODAN ARGUS AG bietet Ihnen eine interessante Stelle in einer zukunftssicheren Branche mit zeitgemässen Anstellungsbedingungen. Wenn wir Ihr Interesse geweckt haben, sollten wir uns kennenlernen. Ihre aussagekräftige Bewerbung mit CV und Motivationsschreiben senden Sie uns bitte per E-Mail zu.

Für diese Vakanz werden Direktbewerbungen bevorzugt.

CODAN ARGUS AG
Human Resources
Frau Eveline Wörndli
Oberneuhofstrasse 10
6340 Baar
[email protected]http://www.codanargus.com

Zum Originalinserat:
https://www.jobs.ch/en/vacancies/detail/8649079/