首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何不打包C#源代码生成器而不将其上传到NuGet?

如何不打包C#源代码生成器而不将其上传到NuGet?
EN

Stack Overflow用户
提问于 2021-07-22 08:51:23
回答 1查看 272关注 0票数 0

我创建了一个类库并将其上传到NuGet.org。类库使用C#源生成器生成重复代码(例如使用值元组的方法)。

类库在NuGet.org上过着快乐的生活,但不知怎么的,源生成器项目也被打包并上传了,这不是我想要的.

如何防止将源生成器项目上载到NuGet?

类库的.csproj

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
      <TargetFramework>net5.0</TargetFramework>
   </PropertyGroup>

   <PropertyGroup>
      <!-- Version, Authors, Description and other NuGet package info abbreviated here. -->
   </PropertyGroup>

   <ItemGroup>
      <ProjectReference
         Include="..\MyLib.SourceGenerators\MyLib.SourceGenerators.csproj"
         OutputItemType="Analyzer"
         ReferenceOutputAssembly="false"/>
   </ItemGroup>
</Project>

源生成器的.csproj

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
      <TargetFramework>netstandard2.0</TargetFramework>
      <LangVersion>9.0</LangVersion>
   </PropertyGroup>

   <ItemGroup>
      <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.8.0"/>
      <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.2">
         <PrivateAssets>all</PrivateAssets>
         <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      </PackageReference>
   </ItemGroup>
</Project>
EN

回答 1

Stack Overflow用户

发布于 2021-08-10 12:04:06

<IsPackable>false</IsPackable>添加到源生成器项目的.csproj似乎可以防止生成NuGet包,类似于单元测试项目。

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
      <TargetFramework>netstandard2.0</TargetFramework>
      <LangVersion>9.0</LangVersion>
      <IsPackable>false</IsPackable> <!-- HERE -->
   </PropertyGroup>

   <ItemGroup>
      <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.8.0"/>
      <!-- ... -->
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68481899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档