2010-11-10 78 views
5

我們使用ajaxmin從我們所有的.js文件創建.min.js文件創建的msdeploy包創建的文件。我們編輯的項目的.csproj文件,並添加以下內容:我們怎樣才能包括由ajaxmin通過的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> 

,當我們建立我們的工作站上的網站和.min.js文件可以在現場使用這個偉大的工程。當我們在此任務中檢查此項目時,也會在msbuild服務器上運行,但由ajaxmin生成的.min.js文件不會複製到我們使用的tfs2010 Rolling Build的放置位置。這些.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/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.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軟件包並將文件複製到放置位置?

回答

4

你錯過了目標目錄因此,所有你需要做的是創造在腳本文件夾中,源和目的每個腳本對文件夾,以確保你沒有按所有分文件複製到每個文件夾在您的項目你的項目,什麼方法,我寫了一篇文章,誰如何做到這一點的腳本文件夾結構,你也可以下載的項目,做到這一點,http://mohamedradwan.wordpress.com/2010/11/12/how-to-include-minify-files-or-custome-files-with-web-pagckage-or-ms-deploy-package/

感謝

+0

感謝這個帖子。這些文件現在包含在軟件包中。 – 2010-11-13 12:20:06

+0

不客氣 – 2010-11-13 21:23:30