我有一个 NuGet 包,其中包含一个 PowerShell 脚本,该脚本在安装包时在目标项目上设置条件编译符号。这适用于所有项目,除了那些使用 project.json 文件的项目(例如 .NET Core、UWP)。
我的脚本访问目标项目的实例,并在必要时$project.ConfigurationManager
将符号添加到条目中。DefineConstants
这不适用于具有 project.json 文件的项目 - 事实上,$project
当我尝试通过 PowerShell 访问 .NET Core 项目时,我什至看不到该对象。下图说明了这一点:虽然经典的 .NET 和 PCL 项目可以访问,但最后一个System.__ComObject
可能代表无法访问的 .NET Core 项目。
那么如何以编程方式在 .NET Core 项目中设置条件编译符号呢?除了使用 install.ps1 脚本之外,还有其他方法吗?我知道,基本上,我必须找到项目 JSON 文件并添加以下条目(如果不存在)
"buildOptions": {
"define": [ "MY_CONDITIONAL_COMPILATION_SYMBOL" ]
}
但我被困在如何到达那里。