2

実際には ASP.Net または C# を含まない C# Web アプリ プロジェクトがあります。これは、いくつかの Javascript、CSS、およびいくつかの画像を含む 1 つの 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> 

どうすればこれを達成できますか?

4

4 に答える 4

4

CoreCompileターゲットをオーバーライドして、そこでは何もしないことができます<Target name="CoreCompile" />。これにより、そのアクティビティがスキップされ、次に進みます。エラーを回避するために、追加のターゲットをオーバーライドする必要がある場合があります。

于 2009-11-20T21:52:56.603 に答える
1

ファイルの上部に DefaultTargets="Build" があります

「Build」を「call_targets」に変更すると、準備完了です。

于 2009-12-07T23:21:29.140 に答える
0

これを簡単に修正するには、プロジェクトにダミー ページを追加します。その後、ビルドは機能します。

于 2012-08-24T08:14:44.010 に答える