【问题标题】:How to use build-specific files or resources in Visual Studio for C# projects?如何在 Visual Studio 中为 C# 项目使用特定于构建的文件或资源?
【发布时间】:2020-06-03 15:11:55
【问题描述】:

在 Visual Studio 中是否可以定义一些文件或资源以仅在特定构建配置中使用?我们使用许多#if DEBUG 子句来添加仅调试代码,但不能在 .config xml 文件中完成相同的操作,例如。有没有办法根据构建配置设置为调试还是发布来定义要使用的该文件的两个版本?

我发现 this 描述了我想要做的事情,但对于使用 Ant 的 Android。 Visual Studio 和 .NET 是否有类似的机制?

【问题讨论】:

    标签: c# visual-studio resources buildconfiguration


    【解决方案1】:

    在 Visual Studio 中有没有一种方法可以定义一些文件或资源以仅在特定构建配置中使用?

    根据这个文档:MSBuild concepts 提到“MSBuild 提供了一个基本的 XML 模式,您可以使用它来控制构建平台如何构建软件。”,我认为 MSBuild 可以帮助您解决这个问题。

    有没有办法定义要使用的该文件的两个版本,具体取决于构建配置是设置为调试还是发布?

    MSBuild 有四个部分:属性、项目、任务和目标。对于这个问题,您可能需要关注“项目”部分。

    解决方案:

    您可以添加此命令行“Condition=”'$(Configuration)'=='Debug'”和“Condition=”'$(Configuration)'=='Release'”来控制何时(调试/发布)使用不同版本的资源。

    请参阅以下屏幕截图和此链接(List of common properties and parameters-- Condition)。

    【讨论】:

    • 太棒了!正是我想要的!但是,我知道如何在 Debug 中包含一些文件,在 Release 中包含其他文件,但是如果文件的两个版本都称为“MyFile.config”,我如何使用您描述的解决方案来包含一个版本或其他版本?谢谢!
    • @DCD 您可以尝试使用<Content … Include=”XXX\XXX\MyFile.config”/> 指定不同.config 文件的路径。此外,您还可以考虑重命名 .config 文件,例如“MyFile.Debug.config”和“MyFile.Release.config”。顺便说一句,你可以参考这个文档:Choose element(MSBuild),也许这是另一种方法。
    • 完美运行!谢谢!你认为你可以在你的答案中添加一点信息吗?我认为它会使它更完整。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多