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

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

我在一个 visual studio 项目中有多个文件夹。对于这个项目,我也有相同数量的配置。 (一个代码库运行多个站点)。

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

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

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

这不能通过“从项目中排除”/“包含在项目中”上下文菜单项来实现。这会将其从整个项目中完全移除。

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

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

尝试在 VS 中做同样的事情。

请帮忙!!

最佳答案

您必须手动编辑 .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>

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

关于c# - 每个 visual studio 配置包含/排除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29154483/

相关文章:

c# - foreach 的奇怪 lock() 行为

c# - 使用 LINQ 从集合内的集合属性中检索最大数字

c# - Lucene AddIndexes(合并)——如何避免重复?

C# 枚举 VS 可空属性名称冲突

tfs - Visual Studio Online - Build Drop 仅包含日志文件

c++ - 从连接管理器获取 wi-fi 连接状态

visual-studio - VS2008 : Highlight several words in different colors simultaneously - Possible as plug-in?

.net - 无法在 Windows XP 上运行 Visual Studio 2012 程序

wpf - 使用 .NET 5 的独立部署模式创建 Visual Studio 安装项目

mysql - 如何向两个有关系的表中插入数据