2010-11-10 9 views
5

Utilizamos ajaxmin para crear archivos .min.js de todos nuestros archivos .js. Hemos editado el archivo .csproj del proyecto y añade lo siguiente:¿Cómo podemos incluir los archivos creados por ajaxmin en el paquete msdeploy creado por MSBuild

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\MicrosoftAjax\ajaxmin.tasks" /> 
<Target Name="AfterBuild"> 
    <ItemGroup> 
     <JS Include="**\*.js" Exclude="**\*.min.js" /> 
    </ItemGroup> 
    <AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" /> 
</Target> 

Esto funciona muy bien cuando construimos el sitio en nuestra estación de trabajo y los archivos .min.js podemos ser utilizados en el sitio. Cuando verificamos este proyecto en esta tarea, también se ejecuta en el servidor msbuild, pero los archivos .min.js generados por ajaxmin no se copian en la ubicación de colocación de la compilación rodante tfs2010 que usamos. Estos archivos .min.js tampoco se incluyen en el paquete que creamos durante esta compilación continua y que también se copian en la ubicación de colocación. Solo los archivos incluidos en el proyecto se usan para el paquete y se copian en la ubicación de colocación.

Los argumentos de MSBuild que utilizamos para crear el paquete son los siguientes:

/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:MSDeployPublishMethod=InProc /p:CreatePackageOnPublish=True /p:MSDeployServiceURL=localhost 

He intentado varias cosas como la adición de una tarea de construcción adicional para copiar todos los archivos .min.js a la ubicación en la el paquete es creado He intentado también la siguiente url http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx para incluir estos archivos con la siguiente en mi archivo .csproj:

<PropertyGroup> 
    <CopyAllFilesToSingleFolderForPackageDependsOn> 
     CustomCollectFiles; 
     $(CopyAllFilesToSingleFolderForPackageDependsOn); 
    </CopyAllFilesToSingleFolderForPackageDependsOn> 
</PropertyGroup> 
<Target Name="CustomCollectFiles"> 
    <ItemGroup> 
     <_CustomFiles Include="**\*.min.js" /> 
     <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)"> 
      <DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath> 
     </FilesForPackagingFromProject> 
    </ItemGroup> 
</Target> 

Alguien más también este problema o ¿alguien tiene una idea de cómo incluir los archivos * .min.js en el paquete msdeploy y hacer que los archivos se copien en la ubicación de colocación?

Respuesta

4

Olvidaste el directorio de destino, así que todo lo que tienes que hacer es crear carpetas para cada script en tu carpeta de scripts, fuente y destino para asegurarte de no copiar todos los archivos min a cada carpeta en tu proyecto de acuerdo la estructura de carpetas guión de su proyecto, de cualquier manera que escribo un artículo y que la forma de hacer eso, también se puede descargar proyecto que haga eso, http://mohamedradwan.wordpress.com/2010/11/12/how-to-include-minify-files-or-custome-files-with-web-pagckage-or-ms-deploy-package/

Gracias

+0

, gracias a esta publicación. Los archivos ahora están incluidos en el paquete. –

+0

De nada –

Cuestiones relacionadas