2010-02-26 3 views

Antwort

16

Es ist unnötig umständlich richtig dies auf dem Weg basiert zu tun, dass Microsoft.WebApplications.targets definiert die _CopyWebApplication Ziel und wie Microsoft.Common.targets behandelt die OutDir und OutputPath Eigenschaften.

Wenn Sie, dass in der Projektdatei selbst ändern wollen, dann sollten Sie:

  • Deklarieren Sie die Eigenschaft WebProjectOutputDir nach dem Import zu Microsoft.WebApplications.targets
  • Deklarieren Sie die Eigenschaft OutDir vor dem Import zu Microsoft.WebApplications.targets

Es gibt einige Gründe, warum Sie dies tun müssen.

Microsoft.WebApplications.targets wird jede Deklaration von WebProjectOutputDir überschreiben, wenn es vor der Importanweisung deklariert wird. Deshalb muss es danach kommen.

Auch im Inneren von Microsoft.WebApplications.targets die _CopyWebApplication ist wie folgt definiert:

<Target Name="_CopyWebApplication" Condition="'$(OutDir)' != '$(OutputPath)'" > 
    .... 
</Target> 

einen Blick auf den Zustand Unter sehen Sie, dass das Ziel ausgeführt wird, nicht wenn OutDir und OutputPath auf den gleichen Wert gleich sind. Sie können OutputPath nicht einfach ändern, da OutDir auf OutputPath basiert. Sie müssen also OutDir ändern und sicherstellen, dass es vor dem Import in diese Datei liegt, da andere Eigenschaften basierend auf dieser Eigenschaft erstellt werden.

Weniger als ideal, aber hoffentlich hilft das Ihnen.

+0

+1 hoffentlich ist das genug Info für mich, um ein ähnliches Problem mit einem Build-Skript statt auf der Projektdatei Ebene herauszufinden. – Maslow

0

ich in diese lief, als Visual Studio für Mac verwenden, ein Umbraco Projekt kompilieren. Gebäude würde geben Sie den folgenden Fehler:

Error MSB4044: The "KillProcess" task was not given a value for the required parameter "ImagePath"

Es wurde Rückkehr einen leeren Wert für WebProjectOutputDir wenn Rosyln Kompilieren usw. Nur das Web-Projekt in der Lösung diese Elemente zusammenstellte, so dass ich bearbeitet das Web-Projekt csproj Datei manuell und fügte dem Globalen am Anfang der Datei Folgendes hinzu:

... 
    <WebProjectOutputDir>.\</WebProjectOutputDir> 
</PropertyGroup> 

Problem gelöst.

Verwandte Themen