【发布时间】:2021-01-17 01:33:37
【问题描述】:
NuGet 包可以为消费项目定义预处理器符号吗?如果有,怎么做?
【问题讨论】:
标签: .net-core msbuild nuget preprocessor
NuGet 包可以为消费项目定义预处理器符号吗?如果有,怎么做?
【问题讨论】:
标签: .net-core msbuild nuget preprocessor
如果您的包 (My.ExamplePackage) 包含一个 MSBuild 文件,名称类似于包名称 + .targets 在构建目录中(因此是 build\MyExamplePackage.targets),您可以使用它来修改可能已被修改的 DefineConstants 属性在项目中设置为默认值或重置:
<Project>
<PropertyGroup>
<DefineConstants>$(DefineConstants);MY_PREPOCESSOR_SYMBOL</DefineConstants>
</PropertyGroup>
</Project>
虽然包可以同时包含.props 和.targets 文件,但.targets 文件将在构建csproj 文件的主体之后导入,因此如果项目重新设置DefineConstants(意思是不通过添加$(DefineConstant);),.targtes 文件有机会添加到此属性。
【讨论】: