【问题标题】:Define C# preprocessor symbol in NuGet package在 NuGet 包中定义 C# 预处理器符号
【发布时间】:2021-01-17 01:33:37
【问题描述】:

NuGet 包可以为消费项目定义预处理器符号吗?如果有,怎么做?

【问题讨论】:

    标签: .net-core msbuild nuget preprocessor


    【解决方案1】:

    如果您的包 (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 文件有机会添加到此属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多