2010-11-10 13 views
5

Usiamo ajaxmin per creare file .min.js da tutti i nostri file .js. Abbiamo modificato il file Csproj del progetto e ha aggiunto seguente:Come possiamo includere i file creati da ajaxmin nel pacchetto msdeploy creato da 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> 

Questa grande opera in cui si costruisce il sito sul nostro posto di lavoro ei file .min.js possono essere utilizzati nel sito. Quando controlliamo questo progetto in questa attività viene eseguito anche sul server msbuild ma i file .min.js generati da ajaxmin non vengono copiati nella posizione di rilascio della generazione di rotoli tfs2010 che usiamo. Questi file .min.js non sono inclusi nel pacchetto che creiamo durante questo rolling build e che viene anche copiato nella posizione di rilascio. Solo i file inclusi nel progetto vengono utilizzati per il pacchetto e copiati nel percorso di rilascio.

Le Argomenti MSBuild che usiamo per creare il pacchetto sono i seguenti:

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

Ho provato diverse cose come l'aggiunta di un compito in più build per copiare tutti i file .min.js alla posizione in cui la il pacchetto è stato creato. Ho provato anche il seguente URL http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx per includere questo file con il seguente nel mio file 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> 

Qualcun altro ha anche questo problema o qualcuno ha un'idea di come includere il * .min.js file il pacchetto msdeploy e copia i file nella posizione di rilascio?

risposta

4

Ti sei perso la directory di destinazione, quindi tutto ciò che devi fare è creare cartelle di coppie per ogni script nella cartella degli script, fonte e destinazione per assicurarti di non aver copiato tutti i file min in ogni cartella del progetto secondo la struttura delle cartelle sceneggiatura del progetto, un modo per scrivere un articolo e che come fare, si può anche scaricare progetto che farlo, http://mohamedradwan.wordpress.com/2010/11/12/how-to-include-minify-files-or-custome-files-with-web-pagckage-or-ms-deploy-package/

Grazie

+0

Grazie per questo intervento. I file sono ora inclusi nel pacchetto. –

+0

Prego –

Problemi correlati