每个visual studio配置包含/排除文件

时间:2015-03-19 20:34:53

标签: c# visual-studio visual-studio-2013

我在visual studio项目中有多个文件夹。我也为此项目提供了相同数量的配置。 (一个代码库运行多个站点)。

我只希望包含每个配置一个文件夹。

现在,每个配置都包含每个文件夹。然后,我必须在构建后手动删除额外的文件夹(如果我这样选择)。

这也会减慢我们的持续集成构建,因为它必须处理所有额外的文件。

“从项目中排除”/“包含在项目中”上下文菜单项无法实现。这将完全从整个项目中删除它。

我需要仅为某些配置包含某些文件夹。

X代码(iOS devleopment)通过使用“目标成员资格”处理此问题...您可以告诉某个文件仅包含在某个目标中。

尝试在VS中做同样的事。

请帮助!!

1 个答案:

答案 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>

我可以补充一点,可能有更好的方法来完成你正在做的事情。也许使用配置转换(可能在不同配置指定用于您的环境的类的名称),但无论哪种方式,上面的示例肯定会完成您所要求的。