単一のプロジェクトに対して多くの構成があるので、.csprojを少しクリーンアップしたいと思いました。
すべての構成定義をConditionalItemGroupを使用して単一のファイルに移動し、それらを.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>
.csprojで定義されたとき、すべてがSolutionExplroerに表示されていました。
PS。googleとstackoverflowで検索しましたが、役立つ情報が見つかりませんでした。