.net-core - 在 NuGet 包中定义 C# 预处理器符号
问题描述
NuGet 包可以为消费项目定义预处理器符号吗?如果是这样,怎么办?
解决方案
如果您的包 ( )在构建目录 (so )My.ExamplePackage
中包含名为包名 + 的 MSBuild 文件,则可以使用它来修改项目中可能已设置为默认值或重置的属性:.targets
build\MyExamplePackage.targets
DefineConstants
<Project>
<PropertyGroup>
<DefineConstants>$(DefineConstants);MY_PREPOCESSOR_SYMBOL</DefineConstants>
</PropertyGroup>
</Project>
虽然包可以同时包含 a.props
和.targets
文件,但.targets
文件将在构建 csproj 文件的主体之后导入,因此如果项目重新设置DefineConstants
(意味着不通过 prepending 添加$(DefineConstant);
),.targtes
文件有机会添加到这个属性。
推荐阅读
- c# - 如何在完全加载(或空闲)时启动另一个程序并与其文本框交互
- linux - 重塑矩阵的特定维度
- arrays - 您可以将 Matlab 数组和结构的复合数据存储和查询到数据库中吗?
- android - Google Play 应用内购买 - querySkuDetailsAsync 不返回状态(活动/非活动)
- django - 如何将 json 传递给序列化程序以存储在模型中
- ifc - 如何查询ifc文件?
- javascript - Geolocation API 坐标返回 Mozilla Firefox 66 的 NaN
- css - 使用 flex 将 react-select 与单行中的其他元素对齐
- ios - 无法在发布请求ios swift中发布参数
- android - LiveData 插入 Room 数据库后未更新