Поскольку у меня много конфигураций для одного проекта, я хотел немного очистить .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 Explroer, когда оно было определено в .csproj.
PS. я искал в google и stackoverflow, но не нашел никакой полезной информации.