gpt4 book ai didi

c# - 如何打包 C# 9 源代码生成器并将其上传到 Nuget?

转载 作者:行者123 更新时间:2023-12-04 11:38:16 25 4
gpt4 key购买 nike

我做了一个 C# 9 源代码生成器,你可以找到它 here
当我在另一个解决方案中使用整个项目并将其作为项目引用时,它可以工作,但是当我将它与当前配置一起上传到 Nuget ( here ) 时,它不起作用。
如何正确配置 C# 9 源生成器以用作 Nuget 包?我的项目有什么问题?

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>0.0.2</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageTags>dotnet</PackageTags>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<GenerateRepositoryUrlAttribute>true</GenerateRepositoryUrlAttribute>
<PackBuildOutput>true</PackBuildOutput>
<PackageId>MockableStaticGenerator</PackageId>
<PackOnBuild>true</PackOnBuild>
<PackFolder>analyzers\cs</PackFolder>
<DebugType>embedded</DebugType>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<PropertyGroup>
<RestoreAdditionalProjectSources>https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json ;$(RestoreAdditionalProjectSources)</RestoreAdditionalProjectSources>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.8.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>

最佳答案

如果解压 nuget 包,您将看到该包存储在 lib 目录中。它必须存储在分析器目录中。
一种方法是将以下内容添加到您的 csproj:

<ItemGroup>
<None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
</ItemGroup>
如果你是多目标,它应该是:
<ItemGroup>
<None Include="$(OutputPath)\netstandard2.0\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
</ItemGroup>
这将包括作为库和分析器的项目。
要将其用作分析器,请添加以下内容:
<PropertyGroup>
<IncludeBuildOutput>false</IncludeBuildOutput>
</PropertyGroup>

关于c# - 如何打包 C# 9 源代码生成器并将其上传到 Nuget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65010453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com