我有一个C#网络应用程序项目,其中实际上没有ASP.Net或C#。它只是一个带有一些Javascript,CSS和一些图像的html页面。
我想使用MSBuild将此应用程序的一个版本部署到具有缩小的JS和CSS的输出文件夹。
使用以下代码,我收到错误“CSC:致命错误CS2008:未指定输入”。我猜是因为没有实际的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>
我怎样才能做到这一点?
答案 0 :(得分:4)
您可以覆盖CoreCompile目标并在那里执行任何操作:<Target name="CoreCompile" />
。这将跳过其活动并继续前进。您可能必须覆盖其他目标以避免错误。
答案 1 :(得分:1)
在文件的顶部,你有DefaultTargets =“Build”
将“Build”更改为“call_targets”,你应该好好去。
答案 2 :(得分:0)
“common.web.targets”里面有什么内容?我假设错误是从该文件中的目标(或其导入的其他目标)生成的。
答案 3 :(得分:0)
快速解决此问题的方法是向项目添加虚拟页面。之后构建将起作用。