我正在尝试将Microsoft的AjaxMin添加到VS2012项目中,我不确定我在做什么。我想我错过了一些明显的东西。
我复制了教程中的代码(http://ajaxmin.codeplex.com/wikipage?title=AjaxMinTask)
我已尝试添加对项目的引用,因此我的代码如下所示:
<UsingTask TaskName="AjaxMin" AssemblyFile="$(MSBuildProjectDirectory)\Build\AjaxMinTask.dll" />
<Target Name="AfterBuild" >
<ItemGroup>
<JS Include="**\*.js" Exclude="**\*.min.js;Scripts\*.js" />
</ItemGroup>
<ItemGroup>
<CSS Include="**\*.css" Exclude="**\*.min.css" />
</ItemGroup>
<AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css" />
</Target>
这是我的.csproj文件的底部,其中已经注释了AfterBuild部分。我得到错误,说JS,CSS,AjaxMin是无效的子元素。当我尝试构建项目时出现错误,我不确定我错过了什么。我在项目中创建了一个名为Build的文件夹,并添加了AjaxMinTask.dll。我不知道是否需要做任何额外的事情来确保它被正确引用。
我也尝试使用Import节点而不是UsingTask
<Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\AjaxMin.tasks" />
我认为AjaxMin安装正确,因为我可以从命令行运行它。
答案 0 :(得分:0)
在.csproj中,文档的结尾(我已经包含了最后一个结束元素)看起来像这样:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\MicrosoftAjax\AjaxMin.tasks" />
<Target Name="AfterBuild" AfterTargets="CopyAllFilesToSingleFolderForPackage" Condition="'$(Configuration)'=='Release'">
<ItemGroup>
<JS Include="scripts\*.js" Exclude="scripts\*.min.js;" />
</ItemGroup>
<ItemGroup>
<CSS Include="css\main.css" />
</ItemGroup>
<AjaxMin Switches="-global:jQuery,$" JsSourceFiles="@(JS)" JsCombinedFileName="scripts\combined.min.js" CssSourceFiles="@(CSS)" CssSourceExtensionPattern="\.css$" CssTargetExtension=".min.css" />
</Target>
</Project>
当我使用Windows 7 64位时,您将看到Import ... includes(MSBuildExtensionsPath32)的路径。如果您使用的是Windows 32位,则最后不需要32位。除此之外,您的代码应该可行。
忽略JS,CSS,AjaxMin childelements错误。但是你不应该得到一个内置的错误。如果您可以发布您的内置错误,那将非常有用。
此外,上面的代码结合了多个JS文件,只是为了好玩而添加。