【发布时间】:2018-05-04 01:52:46
【问题描述】:
我有一个 .NET Core 控制台应用程序。我的目标是能够有条件地DLLImport 一个函数并调用它,但仅限于 Windows 运行时。
我想如果我可以访问 csproj 文件中的运行时标识符,我可以有条件地为该运行时定义一个常量,然后在我的 c# 中我可以包围 DLLImport 并调用 #if/#endif 块.
是否可以根据构建项目的运行时在csproj 中设置编译常量?这专门针对面向 .NET Core 的 SDK 样式的项目格式(以 <Project Sdk="Microsoft.NET.Sdk"> 开头)。
注意:this question 接近,但适用于project.json 风格的项目。
或者,有没有更好的方法来实现我的目标?
【问题讨论】:
-
您可以根据某些条件在 .csproj 中定义编译器常量。例如:
这个xml节点是直接位于根“项目”节点中。TRACE;DEBUG;ABC;NETCOREAPP2_0
标签: c# .net-core interop runtime-identifier