【发布时间】:2019-04-04 10:44:12
【问题描述】:
我正在尝试将 UnitTest 项目打包为 Nuget 包,如果我构建项目,我总是会收到以下警告:
大会 'content\SpecFlow.MSDependencyInjection.SpecFlowPlugin.dll' 不是 在“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 包,它仍然会产生此错误,但此 Nuget 包中的两个依赖项不会。对我来说,这似乎是 Nuget-Packages 的一个问题......
【问题讨论】:
-
您的屏幕截图仍显示
Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll的警告,因此与您所说的仅具有两个 nuget 依赖项的内容不符。也许您仍在打包测试项目,而这些警告来自该项目,而不是您的新类库项目。 -
@zivkan 我的意思是,如果我删除所有 Nuget-Packages 并且只添加我的 Nuget-Package 我仍然会收到错误消息。屏幕截图包含我的项目所需的所有 Nuget 包。我无法删除 TestAdapter,因为它包含我需要的类。抱歉,如果不清楚。
标签: c# .net-core nuget nuget-package