是否可以在C#项目中添加引用,具体取决于条件编译符号(预处理器常量)的值?

tun*_*nuz 4 .net c# reference add c-preprocessor

我正在开发一个可以为两种不同技术编译的库.基本上,库的用户应该能够为Unity3D游戏引擎或NeoAxis游戏引擎编译解决方案.问题是:虽然库已准备好进行条件编译(#if UNITY使用... #endif等),但我找不到根据条件编译符号启用一组引用或另一种引用的方法.

有可能吗?如果是这样,怎么样?

Pre*_*gha 7

是的,但您必须在msbuild .csproj文件中执行此操作.该文件基本上只是数据列表,例如引用.

您要做的是向两个引用添加一个Condition语句.

<Reference ..a.. Condition="'$LibToUse' =='NeoAxis'" />


<Reference ..b.. Condition="'$LibToUse' =='Unitv3D'" />
Run Code Online (Sandbox Code Playgroud)

然后只需使用所需的值定义名为LibToUse的命令行var.