myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Entwicklungs- und Laufzeitumgebung (Infrastruktur) » msbuild target, dass anderen msbuild target aufruft
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

msbuild target, dass anderen msbuild target aufruft

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
alma
myCSharp.de-Mitglied

Dabei seit: 20.05.2019
Beiträge: 4


alma ist offline

msbuild target, dass anderen msbuild target aufruft

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich habe einen msbuild-Prozess, der in zwei Abschnitte unterteilt ist. Der erste analysiert Nuget-Pakete und erstellt Dateien. Da ich Nuget-Pakete erst nach dem "Restore" analysieren kann, wird es nach "CoreCompile" aufgerufen. Der zweite Teil sollte diese Dateien in die Anwendung als embedded resource einbetten und da liegt mein Problem. Der Einbettungsteil muss vor dem Target "PrepareForBuild", aber nach "CoreCompile" erfolgen. Meine Lösung dafür war, einen weiteren Build zu starten, nachdem "CoreCompile" stattgefunden hat. Das sieht wie folgt aus:

XML-Code:
    <Project>
      <PropertyGroup>
        <GivenDirectory>some directory</GivenDirectory>
        <Variable>false</Variable>
        <Variable2>false</Variable2>
      </PropertyGroup>


        <Target Name="SomeTarget" AfterTargets="CoreCompile" Condition="'$(Variable)' == 'true'">
            <MakeDir Directories="$(GivenDirectory)"/>
            <!--this consoletool generates files in the GivenDirectory-->
            <Exec Command="$(ConsoleTool)" />


            <!--this calls the msbuild with the other target-->
            <MSBuild Properties="Variable2=true"  Targets="EmbeddFiles" Projects="$(MSBuildProjectFullPath)" />
        </Target>

        <Target Name="EmbeddFiles" BeforeTargets="PrepareForBuild" Condition="'$(Variable2)' == 'true'">
            <ItemGroup>
              <EmbeddedResource Include="GivenDirectory\*.*"/>
            </ItemGroup>
        </Target>

    </Project>

Das funktioniert gut, bis auf den Punkt, dass die Ressourcen nicht zu meiner Anwendung als embedded-Resource hinzugefügt werden.
Ich kann den Prozess mit

Code:
1:
msbuild.\myapp.csproj /t:rebuild /Variable=true

aufrufen und ich kann sehen, dass beide Ziele so ausgeführt werden, wie ich es wollte, aber irgendwie wird die eingebettete Ressource nicht hinzugefügt. Es erscheint kein Fehler.

Wenn ich das erste Target "SomeTarget" auskommentiere oder den Prozess mit

Code:
1:
msbuild.\myapp.csproj /t:rebuild /Variable2=true

aufrufe sind die Dateien als embeddedResoucre vorhanden.

Wo liegt der Fehler?

Ich habe versucht, es wie in  diesem Thread zu machen.

Dieser Beitrag wurde 5 mal editiert, zum letzten Mal von alma am 10.10.2019 11:24.

10.10.2019 08:19 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 15.10.2019 08:02