2010-10-06 42 views
1

我有一个JavaScript文件,使用Yahoo YUI缩小。当我“发布”Web应用程序项目时,我希望它只复制.min.js文件,而不是原始文件。我可以使用预生成事件来创建缩小版本,但是如何防止“发布”复制非缩减文件?集成到ASP.NET的JavaScript缩小器(例如YUI)Webdeploy发布

我想我可以从项目中“排除”原始非缩小文件,但这不会有帮助,因为我想通过VS 2010编辑脚本文件,但是当我发布时,我希望缩小器先运行,然后然后只发布。

任何指针赞赏

回答

1

如果它是一个Web应用程序(而不是网站),就生成操作更改为无属性窗口。这将防止应用程序发布时复制原始文件。

+0

是的!这正是我所期待的。作品。谢谢。 – jeremy 2010-10-07 19:22:15

2

您可以使用MSBuild社区任务项目和Exec任务来执行此操作。这是一个例子。

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <yuiCompressor>java -jar Libraries\yuicompressor-2.3.6.jar</yuiCompressor> 
    </PropertyGroup> 
    <PropertyGroup> 
    <Major>1</Major> 
    <Minor>0</Minor> 
    <Build>0</Build> 
    <Revision>1</Revision> 
    <BindMinor>0</BindMinor> 
    <BindBuild>0</BindBuild> 
    <BindRevision>0</BindRevision> 
    </PropertyGroup> 
    <ItemGroup> 
    <CssFiles Include="css\site.css" /> 
    <CssFiles Include="css\gray.css" /> 
    <JsFiles Include="scripts\base.js" /> 
    <JsFiles Include="scripts\lib.js" /> 
    <JsFiles Include="scripts\project.js" /> 
    </ItemGroup> 
    <Target Name="Minimize" DependsOnTargets="Version"> 
    <!-- CSS Merge and Minimize -->  
    <Merge Mode="TextLine" 
     SourceFiles="@(CssFiles)" 
     DestinationFile="merged.css" /> 
    <Exec Command="$(yuiCompressor) --type css merged.css -o css\project-$(Revision).css" /> 
    <!-- js Merge and Minimize --> 
    <Merge Mode="TextLine" 
     SourceFiles="@(JsFiles)" 
     DestinationFile="merged.js" /> 
    <Exec Command="$(yuiCompressor) --type js merged.js -o scripts\project-$(Revision).js" /> 
    <Delete Files="merged.css" /> 
    <Delete Files="merged.js" /> 
    </Target> 
</Project>