在 NuGet 包中定义 C# 预处理器符号
Define C# preprocessor symbol in NuGet package
NuGet 包可以为消费项目定义预处理器符号吗?如果是,怎么做?
如果您的包 (My.ExamplePackage
) 在构建目录中包含一个名为包名 + .targets
的 MSBuild 文件(因此 build\MyExamplePackage.targets
),您可以使用它来修改DefineConstants
属性 可能已设置为默认值或在项目中重置:
<Project>
<PropertyGroup>
<DefineConstants>$(DefineConstants);MY_PREPOCESSOR_SYMBOL</DefineConstants>
</PropertyGroup>
</Project>
虽然包可以同时包含 .props
和 .targets
文件,但 .targets
文件将在构建 csproj 文件的主体之后导入,因此如果它是项目re-sets DefineConstants
(意思是不通过添加 $(DefineConstant);
来添加),.targtes
文件有机会添加到这个 属性.
NuGet 包可以为消费项目定义预处理器符号吗?如果是,怎么做?
如果您的包 (My.ExamplePackage
) 在构建目录中包含一个名为包名 + .targets
的 MSBuild 文件(因此 build\MyExamplePackage.targets
),您可以使用它来修改DefineConstants
属性 可能已设置为默认值或在项目中重置:
<Project>
<PropertyGroup>
<DefineConstants>$(DefineConstants);MY_PREPOCESSOR_SYMBOL</DefineConstants>
</PropertyGroup>
</Project>
虽然包可以同时包含 .props
和 .targets
文件,但 .targets
文件将在构建 csproj 文件的主体之后导入,因此如果它是项目re-sets DefineConstants
(意思是不通过添加 $(DefineConstant);
来添加),.targtes
文件有机会添加到这个 属性.