c# - 如何使用msbuild为一个项目创建多个资源(dll)取决于常量值?

标签 c# visual-studio msbuild nuget visual-studio-2019

我有 Visual Studio 2019。

我知道我们可以构建一个具有多种配置的项目,并且每个配置都有一个 dll,例如,我们可以为项目的调试配置使用一个 dll,并且为项目的发布配置使用一个 dll。

但我的问题是如何为一个基于 DefineConstants 的项目拥有多个 dll ,例如当我们<DefineConstants>ML_HOOSHANG</DefineConstants>时一个dll并为这个项目有另一个 dll 而不定义这个常量?

另一个问题是如何打包这个项目并根据我们的定义常量的定义保存所有这些 dll?

另一个问题是,我可以强制 Visual Studio (msbuild) 根据构建请求生成所有 dll 吗?

UsingTask对于这个目的有用吗?还是不?

有什么办法可以改变DefineConstantsUsingTask

最佳答案

How to create multiple assets (dll) for one project with msbuild depend on Constants value?

您可能会从 this issue 得到一些提示。 VS2019 中的批量构建可以帮助您解决问题。

可能的方向:

  1. 创建一个名为 TestBatchBuild 的新项目。右键Solution=>Configuration Manager并创建新的项目配置 NewDebugNewRelease .(从 DebugRelease 复制设置)

enter image description here

现在右键单击解决方案=> batch build我们可以看到:

enter image description here

  • 然后我们编辑项目文件(xx.csproj),我们可以找到四个 PropertyGroup 。添加<DefineConstants>ML_HOOSHANG</DefineConstants>NewDebugNewRelease PropertyGroup 和保存全部
  • 现在使用 NewDebug 进行构建等于使用Debug+DefineConstants构建。并使用 NewRelease 进行构建等于使用Release+DefineConstants构建。现在让我们进入批量构建页面,我们可以一次构建四个程序集。 (调试+nodef...、调试+def...、发布+nodef...、发布+def...)。希望以上内容对您有所帮助。

    关于c# - 如何使用msbuild为一个项目创建多个资源(dll)取决于常量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60068638/

    相关文章:

    c# - 在 Web Api 中的 Asp Core 2.2 中创建自定义返回错误验证

    javascript - 如何在 ASP.NET 母版页中正确引用 javascript 文件?

    c# - MVC 4 Dropdownlist通过按钮传递值?

    visual-studio - 与 Visual Studio 2019 并排安装 Visual Studio 2019 预览版是否安全(Blazor 想要预览版)?

    visual-studio - Windows 容器中的 VS Build Tools 2019 错误

    visual-studio-2015 - 使用 Microsoft.Build (Visual Studio SDK) 编译 C# 6 时出错

    msbuild - Microsoft.Build.CPPTasks.Common 找不到 Microsoft.Build.Tasks.Core

    C# : Unit testing without using 3rd party framework?

    visual-studio - Visual Studio 2015 无法加载包,因为 Microsoft.VisualStudio.Shell.15.0 无法加载

    visual-studio - MFC:如何修复任务管理器输出中的 "TODO <File description> (32 bit)"?