ajaxmin を使用して、すべての .js ファイルから .min.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 サーバーでも実行されますが、ajaxmin によって生成された .min.js ファイルは、使用する tfs2010 ローリング ビルドのドロップ場所にコピーされません。これらの .min.js ファイルは、このローリング ビルド中に作成されるパッケージにも含まれず、ドロップ場所にもコピーされます。プロジェクトに含まれるファイルのみがパッケージに使用され、ドロップ場所にコピーされます。
パッケージの作成に使用する 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/WebDeploymentToolMSDeployBuildPackageInclusiveExtraFilesOrExclusiveSpecificFiles.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>
他の誰かにもこの問題がありますか、それとも msdeploy パッケージに *.min.js ファイルを含めてファイルをドロップ場所にコピーする方法を知っている人はいますか?