Как мы можем включить файлы, созданные ajaxmin в пакет Msdeploy, созданные msbuild

StackOverflow https://stackoverflow.com/questions/4144472

Вопрос

Мы используем Ajaxmin для создания файлов .min.js из всех наших файлов .js. Мы отредактировали файл проекта .csproj и добавлено следующее:

<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>

Это отлично работает, когда мы создаем сайт на нашей рабочей станции, и на сайте можно использовать файлы .min.js. Когда мы проверяем этот проект в этой задаче, выполняется также на MSBuild Server, но файлы .min.js, сгенерированные ajaxmin, не скопированы на местоположение капель TFS2010 Rolling Building. Эти файлы .min.js также не включены в пакет, который мы создаем во время этой сборки Rolling, и который также копируется на местоположение падения. Только файлы, включенные в проект, используются для пакета и скопированы на местоположение.

Аргументы MSBuild, которые мы используем для создания пакета, следующие:

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

Я пробовал несколько вещей, как добавлять дополнительную задачу сборки, чтобы скопировать все файлы .min.js в место, где создается пакет. Я попробовал также следующий URL http://sedodream.com/2010/05/01/webdeploymenttoolmsdeploybuildpackageIncludingextrafilesorexCludingspecifiales.aspx.aspx.asp.aspx. Чтобы включить эту файлы со следующим в моем файле .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>

Кто-нибудь еще также имеет эту проблему или у кого есть идея, как включить файлы * .min.js в пакет Msdeploy и сделать файлы копировать в локацию Drop?

Это было полезно?

Решение

Вы пропустили каталог назначения, чтобы все, что вам нужно сделать, это создавать пары пары для каждого сценария в папке сценария, источник и назначение, чтобы убедиться, что вы не скопировали все минимальные файлы в каждую папку в своем проекте в соответствии со структурой папки сценариев Из вашего проекта, любой способ написать статью и кто, как это сделать, вы также можете скачать проект, который делает это, http://mogamedradwan.wordpress.com/2010/11/12/how-to-include-minify-files-isor-wustome-files-with-web-pagckage-or-s-s-deploy-package/

Спасибо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top