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


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

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

Это отлично работает, когда мы строим сайт на нашей рабочей станции и на .минута.файлы js можно использовать на сайте. Когда мы проверяем этот проект в этой задаче выполняется также на сервере msbuild, но .минута.JS-файлы, созданные ajaxmin, не копируются в папку drop используемой нами сборки Tfs2010 Rolling. Эти.минута.файлы js также не включены в пакет, который мы создаем во время этой скользящей сборки и который также копируется в место сброса. Только файлы, включенные в проект, используются для пакета и копируются в папку drop.

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

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

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

Есть ли у кого-нибудь еще эта проблема или у кого-нибудь есть идея, как включить *.минута.js файлы в пакете msdeploy и сделать копию файлов в папку drop?

1 5

1 ответ:

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

Спасибо