Visual Studio 2010 Prof: обозреватель решений не показывает файлы из файла Import .targets - PullRequest
3 голосов
/ 13 марта 2011


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

1 Ответ

0 голосов
/ 13 марта 2011

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

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

...