我有一个C# web应用程序项目,其中实际上没有ASP.Net或C#。它只是一个单独的html页面,包含一些Javascript、CSS和几个图像。
我想使用MSBuild将此应用程序的一个版本部署到一个带有精简JS和CSS的输出文件夹中。
使用下面的代码,我得到一个错误"CSC: fatal error CS2008: No inputs“。我猜是因为没有实际的C#代码要编译,但我不确定。
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<CssTidy>..\build_tools\csstidy.exe</CssTidy>
</PropertyGroup>
<PropertyGroup>
<DeploymentFolder>Test\</DeploymentFolder>
<SourceProject>..\..\Test\Test.csproj</SourceProject>
</PropertyGroup>
<Import Project="Common.Web.targets" />
<ItemGroup>
<CssFiles Include="..\..\Test\CSS\stylesheet.css" />
<ScriptFiles Include="..\..\Test\JavaScript\javascript.js"/>
</ItemGroup>
<Target Name="compress_css">
<Attrib Files="%(CssFiles.FullPath)" ReadOnly="false"/>
<Exec Command="$(CssTidy) %(CssFiles.FullPath) %(CssFiles.FullPath) --template=highest" />
</Target>
<Target Name="compress_js">
<Attrib Files="%(ScriptFiles.FullPath)" ReadOnly="false"/>
<JSCompress Files="%(ScriptFiles.FullPath)"></JSCompress>
</Target>
<Target Name="call_targets">
<CallTarget Targets="compress_css"/>
<CallTarget Targets="compress_js"/>
</Target>
</Project> 我如何才能做到这一点呢?
发布于 2009-11-21 05:52:57
您可以覆盖CoreCompile目标,在那里什么也不做:<Target name="CoreCompile" />。这将跳过它的活动并继续。您可能必须覆盖其他目标以避免错误。
发布于 2009-12-08 07:21:29
在文件的顶部有DefaultTargets="Build“
将"Build“更改为"call_targets”,就可以运行了。
发布于 2009-11-20 10:17:45
"common.web.targets“里面是什么?我假设错误是从该文件(或它导入的另一个文件)中的目标生成的。
https://stackoverflow.com/questions/1767212
复制相似问题