我们使用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文件可以在站点中使用时,这非常有效。当我们检查这个项目时,这个任务也运行在tfs2010服务器上,但是由ajaxmin生成的.min.js文件没有被复制到我们使用的msbuild滚动构建的放置位置。这些.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包中,并将文件复制到放置位置?
发布于 2010-11-12 23:46:07
你错过了目标目录,所以你所要做的就是为你的脚本文件夹中的每个脚本创建成对的文件夹,源和目标,以确保你没有根据项目的脚本文件夹结构将所有的min文件复制到项目的每个文件夹中,不管我怎么写文章,谁怎么做,你也可以下载做这件事的项目,http://mohamedradwan.wordpress.com/2010/11/12/how-to-include-minify-files-or-custome-files-with-web-pagckage-or-ms-deploy-package/
谢谢
https://stackoverflow.com/questions/4144472
复制相似问题