Использование MSBuild для создания нескольких конфигураций

Я пытаюсь отредактировать файл своего проекта, чтобы позволить мне иметь проект, который строит сразу несколько конфигураций сборки. Я сделал это, используя пакетный подход и задачу MSBuild (см. Ниже).

Если я запускаю сценарий, я получаю следующую ошибку:

Ошибка 103 Свойство OutputPath равно Мы сделали это, используя пакетный подход и используя задачу MSBuild (см. ниже). Если я ...

Я пытаюсь отредактировать файл своего проекта, чтобы позволить мне иметь проект, который строит сразу несколько конфигураций сборки. Я сделал это, используя пакетный подход и задачу MSBuild (см. Ниже).

Если я запускаю сценарий, я получаю следующую ошибку:

Ошибка 103 Свойство OutputPath равно Мы сделали это, используя пакетный подход и используя задачу MSBuild (см. ниже). Если я ...

Я пытаюсь отредактировать файл своего проекта, чтобы позволить мне иметь проект, который строит сразу несколько конфигураций сборки. Я сделал это, используя пакетный подход и задачу MSBuild (см. Ниже).

Если я запускаю сценарий, я получаю следующую ошибку:

Ошибка 103 Свойство OutputPath равно не установлен для проекта "ThisMSBuildProjectFile.csproj". Убедитесь, что вы указали допустимую комбинацию Конфигурация и платформа для этого проект. Конфигурация = "Отладка" Platform = 'AnyCPU'.

Я получаю это, если добавляю или опускаю OutputPath из задачи MSBuild. Если для пошагового выполнения сценария используется отладчик VS2010 и вызывается задача MSBuild - отладчик снова входит в файл, а затем в OutputPath, так что, черт возьми, он должен выбрать это значение, нет?

Мы будем благодарны за любую помощь в этом вопросе - это сводит меня с ума. Спасибо, Пол.

ThisMSBuildProjectFile.csproj (излишки удалены):

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">

  <!-- Only Import normal targets if not building multiple projects -->
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" Condition="'$(Configuration)|$(Platform)' != 'AllBuild|AnyCPU' "/>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == '' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>C:\Folder\Etc\Output\$(Configuration)\</OutputPath>
    <OutDir>C:\Folder\Etc\Output\$(Configuration)\</OutDir>
    <BaseOutputPath>C:\Folder\Etc\Output\$(Configuration)\</BaseOutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

  <!-- Common -->
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <Platform>AnyCPU</Platform>
    <!-- Repeated properties from above here (including, of course, OutputPath) -->  
   </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <!-- Repeated properties from above here (including, of course, OutputPath) --> 
  </PropertyGroup>

  <ItemGroup>
    <Projects Include="C:\Folder\Etc\ThisMSBuildProjectFile.csproj" />
  </ItemGroup>

   <!-- Call this project file again, but with a different configuration - if this was working, this would call multiple  build configs -->
  <Target Name="Build" Condition="'$(Configuration)|$(Platform)' == 'AllBuild|AnyCPU' ">
    <Message Text="hm!"/>
    <!-- Tried thiswith and without the OutputPath property - makes no difference. -->
   <MSBuild  Projects="@(Projects)" Properties="Configuration=Debug;OutputPath=C:\Folder\Etc\Output\" ToolsVersion="4.0" Condition="'$(Configuration)|$(Platform)' == 'AllBuild|AnyCPU' "/>
 </Target>

   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AllBuild|AnyCPU' ">
    <!-- Repeated properties from above here (including, of course, OutputPath) --> 
  </PropertyGroup>

  <!-- Project files -->
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Blah\Blah.cs" />
  </ItemGroup>

22
задан p.q 1 April 2011 в 09:06
поделиться