由于我对单个项目有很多配置,所以我想稍微清理一下 .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>
当在 .csproj 中定义时,Solution Explorer 中的所有内容都是可见的。
PS。我在谷歌和stackoverflow中搜索,但没有找到任何有用的信息。