Msbuild 用于.Net的YUI压缩机

Msbuild 用于.Net的YUI压缩机,msbuild,yui,yui-compressor,Msbuild,Yui,Yui Compressor,我正在尝试在MSbuild()中使用YIUCompression DLL 但在运行MSBuild时,我不断遇到以下错误: <!-- Execute CompressorTask for each file in the list --> <CompressorTask Condition="'%(JavaScriptFiles.Identity)' != ''" JavaScriptFiles="%(JavaScriptFiles.Identity)" Obf

我正在尝试在MSbuild()中使用YIUCompression DLL 但在运行MSBuild时,我不断遇到以下错误:

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />
输出:

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />
目标构建:
正在启动Css/Javascript压缩

# Found one or more JavaScript file arguments. Now parsing ...
    ** Obfuscate Javascript: Yep!
    ** Preserve semi colons: Yep!
    ** Disable optimizations: Hell No!
    ** Line break position: None
    ** Thread Culture: Not defined
# 1 JavaScript file requested.
    => C:\JSMinify\YIUCompressor\Test\disableButton.js    C:\JSMinify\YIUCompressor\Millena-I.Build.proj(17,5): error : Failed to read in the data for the path/file [C:\JSMinify\YIUCompressor\Test\disableButton.js]. The most common cause for this is because the path is incorrect or the file name is incorrect ... so please check your path and file names. Until you fix this up, I can't continue ... sowwy.
C:\JSMinify\YIUCompressor\Millena-I.Build.proj(17,5): error : Value cannot be null.
C:\JSMinify\YIUCompressor\Millena-I.Build.proj(17,5): error : Parameter name: value
    Finished compressing all 1 file.
Total original JavaScript file size: 405. After compression: 0. Compressed down to 0% of original size.
Compressed content saved to file [C:\JSMinify\YIUCompressor\Test\disableButton.js].
<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />
在项目“Millena-I.Build.proj”中完成了构建目标“Build”

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />
完成建筑项目“Millena-I.Build.proj”

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />
构建成功。 C:\JSMinify\YIUCompressor\Millena-I.Build.proj(17,5):错误:未能读入路径/文件[C:\JSMinify\YIUCompressor\Test\disableButton.js]的数据。最常见的原因是路径不正确或文件名不正确。。。所以请检查您的路径和文件名。在你解决之前,我不能继续。。。sowwy.C:\JSMinify\YIUCompressor\Millena-I.Build.proj(17,5):错误:值不能为null。 C:\JSMinify\YIUCompressor\Millena-I.Build.proj(17,5):错误:参数名称:value

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />
以下是我的构建脚本:

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />

我已经授予文件夹和文件的完全权限(以只读方式删除)。令人惊讶的是,当构建失败时,我的文件是完全空白的

我在上一个ASP.NET项目中使用了YUICompressor的java版本。
<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />
它是否适合您,或者您只是对.dll文件感兴趣? 下面是我的目标任务

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />
<Target Name="MinifyScripts" Condition="Exists('$(JAVA_HOME)')">        
    <YuiCompress Files="@(JavaScriptContent)" Type="JS" JavaHome="$(JAVA_HOME)" YUIHome="$(MSBuildStartupDirectory)\Resource\BuildTool\yuicompressor-2.4.1.jar" />
    <YuiCompress Files="@(CssContent)" Type="CSS" JavaHome="$(JAVA_HOME)" YUIHome="$(MSBuildStartupDirectory)\Resource\BuildTool\yuicompressor-2.4.1.jar" />
</Target>

这真的很简单。尝试使用它

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />
Dave Ward在这里就这个话题写了一篇很好的文章:

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />

<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
   Condition="'%(JavaScriptFiles.Identity)' != ''"
   JavaScriptFiles="%(JavaScriptFiles.Identity)"
   ObfuscateJavaScript="FoSho"
   PreserveAllSemicolons="Yeah"
   DisableOptimizations="Nope"
   EncodingType="Default"
   DeleteJavaScriptFiles="true"
   JavaScriptOutputFile="%(JavaScriptFiles.Identity)"
   LoggingType="ALittleBit" />