2010-11-10 9 views
5

Używamy ajaxmin do tworzenia plików .min.js ze wszystkich naszych plików .js. Mamy edytowany plik .csproj projektu i dodaje się:Jak możemy uwzględnić pliki utworzone przez ajaxmina w pakiecie msdeploy utworzonym przez 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> 

Działa to doskonale, kiedy budujemy stronę na naszej stacji roboczej i .min.js pliki mogą być wykorzystane w serwisie. Kiedy sprawdzimy ten projekt w tym zadaniu uruchamiamy również na serwerze msbuild, ale pliki .min.js wygenerowane przez ajaxmin nie są kopiowane do miejsca upuszczenia używanego przez nas Rolling Build tfs2010. Te pliki .min.js również nie są zawarte w pakiecie, który tworzymy podczas tej toczącej się kompilacji, a także są kopiowane do miejsca upuszczenia. Tylko pliki uwzględnione w projekcie są używane w pakiecie i kopiowane do miejsca upuszczenia.

argumentów MSBuild używamy do tworzenia pakietu są następujące:

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

Próbowałem kilka rzeczy, jak dodawanie dodatkowego zadania build skopiować wszystkie pliki .min.js do miejsca, w którym pakiet jest tworzony. Próbowałem również następujący adres URL http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx na umieszczenie plików z następujących w moim pliku .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> 

czy ktoś inny też tego problemu lub czy ktoś ma pomysł jak zawierać pliki * .min.js pakiet msdeploy i skopiować pliki do lokalizacji upuszczenia?

Odpowiedz

4

Tęskniłeś za katalogiem docelowym, więc musisz tylko utworzyć foldery par dla każdego skryptu w folderze skryptu, źródło i miejsce docelowe, aby upewnić się, że nie skopiowałeś wszystkich plików min do każdego folderu w projekcie zgodnie z folder struktura scenariusz projektu, żaden sposób mi napisać artykuł i kto, jak to zrobić, można również pobrać projekt, który to zrobić, http://mohamedradwan.wordpress.com/2010/11/12/how-to-include-minify-files-or-custome-files-with-web-pagckage-or-ms-deploy-package/

Thanks

+0

dzięki za ten komentarz. Pliki są teraz zawarte w pakiecie. –

+0

Nie ma za co –

Powiązane problemy