0

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>

これは、コメントアウトされた AfterBuild セクションが既にある .csproj ファイルの下部にあります。JS、CSS、AjaxMin が無効な子要素であるというエラーが表示されます。プロジェクトをビルドしようとするとエラーが発生します。何が欠けているのかわかりません。プロジェクト内に Build というフォルダーを作成し、AjaxMinTask.dll を追加しました。適切に参照されていることを確認するために必要な追加のことがあるかどうかはわかりません。

また、UsingTask の代わりに Import ノードを使用してみました <Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\AjaxMin.tasks" /> 。コマンド ラインから実行できるため、AjaxMin が正しくインストールされていると思います。

4

1 に答える 1

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 ファイルを組み合わせたもので、楽しみのために追加しただけです。

于 2013-07-17T05:30:35.760 に答える