Ich bin ein .csproj
Projekt anpassen, um einige benutzerdefinierte Aufgaben vor dem Hauptbuild auszuführen. Ich kann jedoch die Aufgaben überhaupt nicht ausführen.MS-Build BeforeBuild nicht feuern
Ich habe das <Target Name="BeforeBuild" />
Element in der Datei .csproj
auskommentiert und eine einfache Nachricht Aufgabe hinzugefügt, aber wenn ich baue, erscheint die Nachricht nicht in meiner Ausgabe, so scheint es, dass die Aufgabe nicht ausgeführt wird. Also dieses Fragment gibt die Nachricht nicht aus;
Listing 1: keine Meldung angezeigt
<Target Name="BeforeBuild">
<Message Text="About to build ORM layer" Importance="normal" />
</Target>
Allerdings, wenn ich mit einigen der Attribute Schraube, ich die .csproj
bekommen kann scheitern überhaupt auszuführen;
Listing 2: ein Konfigurationsfehler MSBuild
<Target Name="BeforeBuild">
<Message Text="About to build ORM layer" XXImportance="normal" />
</Target>
Notierte das XXImportance
Attribut. Die Build-Fehler ich erhalte, sind
My.csproj(83,46): error MSB4064: The "XXImportance" parameter is not supported by the "Message" task. Verify the parameter exists on the task, and it is a settable public instance property.
Dies deutet darauf hin, dass die XML analysiert wird, dass die Message
Klasse gefunden wurde, und dass die Klasse wird für die verfügbaren Eigenschaften reflektiert über.
Warum sollte die Aufgabe nicht ausgeführt werden?
Ich benutze das 3.5-Framework.
UPDATE 1: Auf @ Martins Rat, habe ich versucht, MSBuild auf der Konsole auszuführen, und habe diesen Fehler erhalten;
c:\path\to\my.csproj(74,11): error MSB4019: The imported
project "C:\Microsoft.CSharp.targets" was not found. Confirm
that the path in the <Import> declaration is correct, and that
the file exists on disk.
Zeile 74 liest;
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
UPDATE 2: ich in VS2008 bin kompilieren, die die C# 3-Compiler verwendet, aber das Projekt, das ich kompilieren bin ist ein Framework 2.0-Projekt. Bei der Ausführung über die Befehlszeile (siehe UPDATE 1) scheint der Build fehlzuschlagen, da die Position Microsoft.CSharp.targets
nicht eindeutig angegeben ist.
Hallo, Martin. Vielen Dank für die Antwort - ich weiß es zu schätzen. Ich bin schon auf minimale Ausführlichkeit, also glaube ich nicht, dass es das ist. Ich habe versucht, über die Konsole zu kompilieren, aber einen Fehler - ich habe es an den ursprünglichen Beitrag angehängt. Irgendwelche Ideen? –
Haben Sie den Visual Studio Command Pront unter Visual Studio Tools (unter Microscreen Visist Studio 20xx) im Startmenü -> Alle Programme verwendet. Es legt eine Reihe von Umgebungsvariablen fest, die msbuild funktionieren lassen. –
Auch Sie könnten es versuchen. normal statt minimal –