Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Сбой задачи после сборки в VS 2013

Автор вопроса: AustinОтветов: 3

В Visual Studio 2012 я выполнял следующую задачу Post-Build для компиляции и объединения моих файлов LESS:

$(MSBuildBinPath)\msbuild.exe "$(ProjectDir)MSBuildSettingsLess.xml"

Мой MSBuildSettingsLess.xml выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
    <Target Name="CompileDotlessCss">
        <ItemGroup>
            <Binaries Include="*.dll;*.exe"/>
        </ItemGroup>

        <!-- Compile dotLess CSS into minified full CSS -->
        <Exec Command="$(SolutionDir)..\Tools\dotless.compiler.exe $(ProjectDir)..\GMHC\Content\less\responsive.less $(ProjectDir)..\GMHC\Content\bootstrap-responsive.less.css"/>
        <Exec Command="$(SolutionDir)..\Tools\dotless.compiler.exe $(ProjectDir)..\GMHC\Content\less\bootstrap.less $(ProjectDir)..\GMHC\Content\bootstrap.less.css"/>
    </Target>
</Project>

В Visual Studio 2013 происходит сбой со следующей ошибкой:

Команда "C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe "C:\Users\Administrator\Documents\Projects\MedicalMissions\GMHC\MSBuildSettingsLess.xml завершилась с кодом 9009.

Окна вывода показывают следующее:

1> 'C:\Program' не распознается как внутренняя или внешняя команда,
1> работающая программа или пакетный файл.
1> C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft .Common.CurrentVersion.targets(4429,5): ошибка MSB3073: команда "C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe" C:\Users\Administrator\Documents\Projects\MedicalMissions\ GMHC\MSBuildSettingsLess.xml"

Любая идея, почему это терпит неудачу или как добраться до сути?

lessmsbuildmsbuild-taskvisual-studio-2013

Ответы

Ответ 1 · рейтинг 17 · Austin

Ответ был на самом деле довольно прост, мне просто нужно было заключить вызов в кавычки. Итак, новая задача Post-Build:

"$(MSBuildBinPath)\msbuild.exe" "$(ProjectDir)MSBuildSettingsLess.xml"

Похоже, он также обратно совместим с VS 2012.

Ответ 2 · рейтинг 3 · granadaCoder

Вам могут понадобиться кавычки в файле определения msbuild (.proj).

Общий пример:

  <Exec Command="&quot;c:\Folder With Spaces\myfile.exe&quot;"/>

Ответ 3 · muthuvel

У меня возникла та же проблема, но я использую место в папке. Решение работает, когда я удаляю пробел.

Do:
D:\MyDetailsMuthuvelF\Project_Document\

Don't:
D:\My Details Muthuvel F\Project_Document\

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы