Visual Studio 2010 Prof: обозреватель решений не отображает файлы из импорта .targets


Поскольку у меня много конфигураций для одного проекта, я хотел немного почистить .csproj.
Я переместил все определения конфигурации в отдельные файлы с Conditional ItemGroup и импортировал их в .csproj с помощью:

<Import Project="conf/file.targets">

Вроде все хорошо, кроме одного: в обозревателе решений я не вижу файлов, определенных в .targets, но проект компилируется без проблем. Это баг или нормальное поведение? Как я могу увидеть файлы, импортированные из .targets? (т. е. SomeFile и SomeFile2.)
Пример test.targets:

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

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'TestConfig|x86'">
    <OutputPath>bin\TestConfig\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
    <ErrorReport>prompt</ErrorReport>
  </PropertyGroup>

  <ItemGroup Condition=" '$(Configuration)'=='TestConfig' ">
    <Compile Include="SomeFile.cs" />
    <Compile Include="SomeFile2.cs" />
  </ItemGroup>

</Project>

Все было видно в Solution Explorer, когда оно было определено в .csproj.

PS. я искал в google и stackoverflow, но не нашел никакой полезной информации.


person cichy    schedule 13.03.2011    source источник
comment
Вы когда-нибудь находили решение для этого?   -  person Andy    schedule 21.03.2016
comment
@ Энди, нет, для этого не было решения (по крайней мере, для VS 2010), никогда не пробовал в версиях Visual Studio.   -  person cichy    schedule 06.12.2016
comment
@ Энди, я проверил в VS 2015 Pro, и он ведет себя точно так же, как VS2010, поэтому у меня нет обходного пути для этого.   -  person cichy    schedule 25.12.2016
comment
Связанный, но не совсем дубликат: Перемещение элементов компиляции в msbuild в отдельный файл?   -  person chwarr    schedule 28.06.2017


Ответы (1)


Использование Visual Studio файлов MSBuild является подмножеством того, на что способна MSBuild.

В частности, VS структурирует файлы проекта так, как он может понять, вполне возможно иметь допустимый файл MSBuild, который не является допустимым файлом проекта VS. Если вы хотите использовать VS для управления содержимым проекта, вам нужно придерживаться подмножества MSBuild, которое использует и понимает VS.

person Richard    schedule 13.03.2011
comment
так есть ли другой способ иметь чистый файл managabale .csproj, 35-40 конфигов, в каждом 5-10 условных файлов? - person cichy; 13.03.2011
comment
@cichy: подозреваю, что нет. Возможно, вам стоит обратить внимание на макросы/расширения, чтобы упростить управление группами конфигураций (массовая настройка параметров). - person Richard; 13.03.2011