c# - 类库,.NET 3.1 核心:错误 CS5001 程序不包含静态 Main 方法
问题描述
我意识到类似的问题有不同的答案,但是在我的情况下,我有一个 .net Core 3.1 项目,我的项目是一个类库,那么为什么编译器要求我有一个 Main 入口点?其他问题的答案基本上建议使用类库,但这似乎不适用于.net Core 3.1
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>Tutorials_UnitTest</RootNamespace>
<IsPackable>false</IsPackable>
<OutputType>Library</OutputType>
<GenerateProgramFile>false</GenerateProgramFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="3.1.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers ;buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.msbuild" Version="3.1.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NUnit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.16.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Tutorials\Tutorials.csproj" />
</ItemGroup>
</Project>
注意:我尝试过干净重建、重新启动 Visual Studio、删除所有 /bin、/obj 目录,但仍然失败。
解决方案
这是由单元测试框架包引起的:
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="1.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers ;buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.msbuild" Version="2.9.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NUnit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.16.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
</ItemGroup>
具体来说,它"coverlet.collector"
是导致问题的原因。
如果您的库不是单元测试库(看起来它不是),那么只需删除整个<ItemGroup>
.
否则,您可以通过将以下内容添加到<PropertyGroup>
项目文件的一部分来修复它:
<GenerateProgramFile>false</GenerateProgramFile>
推荐阅读
- snakemake - Snakemake 使用检查点结束工作流程
- python - Python函数根据最近的日期和活动状态返回行
- python - 如何在通用 UpdateView 中为 django 表单小部件指定查询集
- visual-studio-2019 - VS 2019 重建删除发布所需文件
- sql - 需要帮助查找哪个类别没有项目 - SQL/Access 新手
- r - 将条件应用于具有 R 中索引的多个列
- javascript - 由于目标被视为被动,无法在被动事件侦听器中阻止默认值
- matplotlib - plt.savefig 正在保存旧版本的情节
- javascript - 制作不同的随机数
- r - 在 QQplot 中为模型画线