настраиваемая задача msbuild

У меня есть настраиваемая задача MSBuild, которая принимает набор файлов JavaScript, минимизирует их и выводит с расширением .min.js. Когда я выполняю обычную сборку с помощью Visual Studio, она работает отлично, и файлы .min.js выводятся в тот же каталог, что и исходные файлы. Когда я пытаюсь выполнить развертывание с помощью функции публикации в Visual Studio, только исходные файлы .js попадают в каталог публикации .... Как я могу получить результат моей задачи, который будет считаться "содержимым", чтобы он завершился в опубликованной папке?

РЕДАКТИРОВАТЬ: Я смог понять это, добавив тег вывода внутри моей задачи, а затем создав вокруг этого ItemGroup:

<Target Name="AfterBuild">      
    <ItemGroup>
        <JavaScriptFiles Include="Scripts\*.js" Exclude="Scripts\*.min.js" />
    </ItemGroup>
    <JsCompress Files="@(JavaScriptFiles)" OutputPath="Scripts">
        <Output TaskParameter="CompressedFiles" ItemName="CompressedFiles" />
    </JsCompress>
    <ItemGroup>
        <Content Include="@(CompressedFiles)" />
    </ItemGroup>
</Target>

person Shane    schedule 09.03.2010    source источник


Ответы (2)


Сборка и публикация - разные цели. Добавьте цель в свой проект, абстрагируйте минификацию до ее собственной цели, а затем сделайте цель AfterBuild и Publish зависимой от цели минификации. Что-то вроде этого:

  <Target Name="AfterBuild" DependsOnTargets="Build;Minify">
  </Target>
  <Target Name="Publish" DependsOnTargets="Build;Minify">
  </Target>
  <Target Name="Minify" DependsOnTargets="Build">
    <ItemGroup>
      <JavaScriptFiles Include="Scripts\*.js" Exclude="Scripts\*.min.js" />
    </ItemGroup>
    <JsCompress Files="@(JavaScriptFiles)" OutputPath="Scripts">
      <Output TaskParameter="CompressedFiles" ItemName="CompressedFiles" />
    </JsCompress>
    <ItemGroup>
      <Content Include="@(CompressedFiles)" />
    </ItemGroup>
  </Target>

Этот фрагмент, конечно же, означает, что у вас должна быть цель сборки, что может быть или нет. По этой причине вам может потребоваться изменить это. Надеюсь это поможет!

person Audie    schedule 30.03.2010

Измените свойства файла. Проверьте свойства Build Action и Copy to Output Directory для этих файлов.

person Theresa    schedule 09.03.2010