我正在尝试将微软的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。我不知道是否有任何额外的事情我需要做,以确保它被正确引用。
我还尝试使用导入节点而不是UsingTask <Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\AjaxMin.tasks" />,我认为AjaxMin安装正确,因为我可以从命令行运行它。
发布于 2013-07-17 13:30:36
在您的.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>由于我使用的是64位Windows 7,因此您将看到导入路径...包括(MSBuildExtensionsPath32)。如果您使用的是Windows 32位,则不需要在末尾使用32。除此之外,您的代码应该可以正常工作。
忽略JS,CSS,AjaxMin孩子元素错误。但是你不应该得到一个构建的错误。如果您可以发布您的构建错误,它将是有用的。
此外,上面的代码组合了多个JS文件,只是为了好玩而添加的。
https://stackoverflow.com/questions/14837911
复制相似问题