我在visual studio项目中有多个文件夹。我也为此项目提供了相同数量的配置。 (一个代码库运行多个站点)。
我只希望包含每个配置一个文件夹。
现在,每个配置都包含每个文件夹。然后,我必须在构建后手动删除额外的文件夹(如果我这样选择)。
这也会减慢我们的持续集成构建,因为它必须处理所有额外的文件。
“从项目中排除”/“包含在项目中”上下文菜单项无法实现。这将完全从整个项目中删除它。
我需要仅为某些配置包含某些文件夹。
X代码(iOS devleopment)通过使用“目标成员资格”处理此问题...您可以告诉某个文件仅包含在某个目标中。
尝试在VS中做同样的事。
请帮助!!
答案 0 :(得分:15)
您必须手动编辑.csproj文件,它实际上只是一个MSBUILD文件。 (右键单击,在记事本或其他文本编辑器中打开)
这是一个例子。我复制了默认的Program.cs并为DEBUG创建了一个,为RELEASE创建了一个。
在正常情况下,当我构建这个时,我会收到一个错误,因为我已经定义了两次相同的类。
但是在编辑了.csproj文件之后,它们现在可以独立构建,具体取决于我选择的配置。
<ItemGroup>
<Compile Include="DebugFiles\ProgramForDebug.cs" Condition=" '$(Configuration)' == 'Debug' "/>
<Compile Include="ReleaseFiles\ProgramForRelease.cs" Condition=" '$(Configuration)' == 'Release' "/>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
我可以补充一点,可能有更好的方法来完成你正在做的事情。也许使用配置转换(可能在不同配置指定用于您的环境的类的名称),但无论哪种方式,上面的示例肯定会完成您所要求的。