我正在尝试将 UnitTest 项目打包为 Nuget 包,如果我构建我的项目,我总是会收到以下警告:
程序集“content\SpecFlow.MSDependencyInjection.SpecFlowPlugin.dll”不在“lib”文件夹中,因此在将包安装到项目中时不会将其添加为参考。如果需要引用,请将其移动到“lib”文件夹中。
我的 csproj 文件如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>0.1.0</Version>
<IsPackable>true</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Http" Version="2.2.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
<PackageReference Include="MSTest.TestAdapter" Version="1.4.0" />
<PackageReference Include="MSTest.TestFramework" Version="1.4.0" />
<PackageReference Include="SpecFlow" Version="3.0.188" />
<PackageReference Include="SpecFlow.MSDependencyInjection.SpecFlowPlugin" Version="1.0.2" />
<PackageReference Include="SpecFlow.MsTest" Version="3.0.188" />
<PackageReference Include="SpecFlow.Tools.MsBuild.Generation" Version="3.0.188" />
</ItemGroup>
</Project>
如果我将文件复制到 Nuget 包的 lib 文件夹中,错误仍然会出现。我不知道我需要改变什么才能让这个警告消失。坦率地说,我什至不确定它为什么首先出现,因为我有一个不同的项目可以正常工作而没有这个错误。
更新1:
在@zivkan 的详细回答之后,我改变了我的项目结构,所以它不再是一个 UnitTest 项目。
遗憾的是,如果我的项目是类库,错误仍然会出现......
如果我只添加我自己的由两个依赖项(Microsoft.Extensions.DependencyInjection 和 SpecFlow)组成的 Nuget-Package,它仍然会产生此错误,但此 Nuget-Package 中的两个依赖项不会。对我来说,这似乎是 Nuget-Packages 的一个问题......