【问题标题】:How do I use msbuild in Visual Studio's post build event?如何在 Visual Studio 的构建后事件中使用 msbuild?
【发布时间】:2014-11-23 14:43:46
【问题描述】:

我正在尝试在我的 Visual Studio 项目中配置 YUICompressor.NET。

据我了解,我必须创建一个 .proj 文件并将其添加到我的解决方案中。之后,我需要创建一个构建后事件来构建这个 .proj 文件,然后我会得到我想要的输出(缩小的 js/css 文件)。

所以,我有:

这个 .proj 包含:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">

  <UsingTask TaskName="CssCompressorTask" AssemblyFile="\..\packages\YUICompressor.NET.MSBuild.2.7.0.0\lib\NET20\Yahoo.Yui.Compressor.Build.MsBuild.dll" />
  <UsingTask TaskName="JavaScriptCompressorTask" AssemblyFile="\..\packages\YUICompressor.NET.MSBuild.2.7.0.0\lib\NET20\Yahoo.Yui.Compressor.Build.MsBuild.dll" />

  <Target Name="Minify">

    <ItemGroup>
      <!-- Single files, listed in order of dependency -->
      <CssFiles Include="Content\*.css"/>
      <JavaScriptFiles Include="Scripts\*.js"/>      
    </ItemGroup>

    <CssCompressorTask
          SourceFiles="@(CssFiles)"
          OutputFile="Content\min.css"
       />

    <JavaScriptCompressorTask
          SourceFiles="@(JavaScriptFiles)"
          OutputFile="Scripts\min.js"
       />

  </Target>
</Project>

我正在尝试如下构建它:

我收到以下错误:

The command "msbuild C:\Users\Me\Desktop\MvcApplicationExample\MvcApplicationExample\YuiCompressorMsBuild.proj" exited with code 9009.

此错误表明“msbuild”不是有效命令。那么,我应该如何构建这种类型的项目呢? (我已经按照这个教程:youtube)

感谢您的帮助。

【问题讨论】:

  • 错误 9009 仅表示“命令失败”,它不会告诉您失败的原因。为此,您需要查看“输出”窗口。
  • 提示 @HansPassant。我的输出窗口显示:'msbuild' is not recognized as an internal or external command。那么,我应该如何构建项目呢? youtube 视频显示演示者通过 cmd 执行 msbuild。我认为我可以在构建后事件中使用它。

标签: visual-studio-2010 post-build-event yui-compressor


【解决方案1】:

如您所说,Visual Studio 可能找不到 MSBuild 命令,请尝试使用以下命令

"$(MSBuildBinPath)\msbuild.exe"

这使用了 msbuild 的完整路径。

更新(供期货参考)

作为comment by Steve Medley,你不应该忘记封装引号。

【讨论】:

  • 它解决了我的问题!泰。
  • msbuild 也不适合我,这不是一个有效的命令
  • @shyam_ 你看到 steve medley 的评论了吗?
  • “你不应该忘记封装引号”!
【解决方案2】:

vfabre 使用 $(MSBuildBinPath)\msbuild.exe 是正确的,但缺少一件事。您应该将其封装在引号中,因为在 99.99% 的情况下,msbuild 的文件路径中有一个空格

【讨论】:

    【解决方案3】:

    嗯,可能存在问题的一件事是,您希望它作为构建后事件,但它是为构建前命令行设置的。

    【讨论】:

    • Ty 用于观察,但不幸的是它不能解决我的问题。我已经编辑了图像。同样的错误。
    • 啊,这只是对我跳出来,所以我希望就是这样。我会仔细看看。
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    相关资源
    最近更新 更多