2010-02-26 20 views

Respuesta

16

Es innecesariamente incómoda hacer correctamente esta basado en la forma en que se define el objetivo Microsoft.WebApplications.targets_CopyWebApplication y cómo Microsoft.Common.targets trata el OutDir y OutputPath propiedades.

Si quiere cambiar eso en el archivo del proyecto en sí, entonces usted debe:

  • Declarar la propiedad WebProjectOutputDir después de la importación a Microsoft.WebApplications.targets
  • Declarar la propiedad OutDir antes de la importación a Microsoft.WebApplications.targets

Hay algunas razones por las que debes hacer esto.

Microsoft.WebApplications.targets anulará cualquier declaración de WebProjectOutputDir si se declara antes del estado de importación. Por lo tanto, tiene que venir después.

También en el interior de la Microsoft.WebApplications.targets_CopyWebApplication se define de la siguiente manera:

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

Echando un vistazo a la condición verá que el objetivo no se ejecutará si OutDir y OutputPath son iguales al mismo valor. No puede simplemente cambiar OutputPath porque OutDir se basa en OutputPath, por lo que debe cambiar OutDir y asegurarse de que sea anterior a la importación a ese archivo porque otras propiedades se crean en función de esa propiedad.

Menos que ideal, pero espero que eso lo ayude.

+0

+1 Espero que esto sea suficiente información para que descubra un problema similar que implica una secuencia de comandos de compilación en lugar de a nivel de archivo de proyecto. – Maslow

0

me encontré con esto cuando utilice Visual Studio para Mac, la compilación de un proyecto Umbraco. Edificio emitiría el siguiente error:

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

regresaba un valor vacío para WebProjectOutputDir al compilar Rosyln, etc. Sólo el proyecto de la tela en la solución estaba compilando estos elementos, por lo que editar el fichero de proyecto web csproj manualmente, y se añade lo siguiente a lo global en la parte superior del archivo:

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

Problema resuelto.

Cuestiones relacionadas