我在一个 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/