我有 Visual Studio 2019。
我知道我们可以构建一个具有多种配置的项目,并且每个配置都有一个 dll,例如,我们可以为项目的调试配置使用一个 dll,并且为项目的发布配置使用一个 dll。
但我的问题是如何为一个基于 DefineConstants
的项目拥有多个 dll ,例如当我们<DefineConstants>ML_HOOSHANG</DefineConstants>
时一个dll并为这个项目有另一个 dll 而不定义这个常量?
另一个问题是如何打包这个项目并根据我们的定义常量的定义保存所有这些 dll?
另一个问题是,我可以强制 Visual Studio (msbuild) 根据构建请求生成所有 dll 吗?
是UsingTask对于这个目的有用吗?还是不?
有什么办法可以改变DefineConstants
每UsingTask
?
最佳答案
How to create multiple assets (dll) for one project with msbuild depend on Constants value?
您可能会从 this issue 得到一些提示。 VS2019 中的批量构建可以帮助您解决问题。
可能的方向:
- 创建一个名为
TestBatchBuild
的新项目。右键Solution=>Configuration Manager
并创建新的项目配置NewDebug
和NewRelease
.(从Debug
和Release
复制设置)
现在右键单击解决方案=> batch build
我们可以看到:
- 然后我们编辑项目文件(xx.csproj),我们可以找到四个
PropertyGroup
。添加<DefineConstants>ML_HOOSHANG</DefineConstants>
至NewDebug
和NewRelease
PropertyGroup 和保存全部。
现在使用 NewDebug
进行构建等于使用Debug+DefineConstants
构建。并使用 NewRelease
进行构建等于使用Release+DefineConstants
构建。现在让我们进入批量构建页面,我们可以一次构建四个程序集。 (调试+nodef...、调试+def...、发布+nodef...、发布+def...)。希望以上内容对您有所帮助。
关于c# - 如何使用msbuild为一个项目创建多个资源(dll)取决于常量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60068638/