【发布时间】:2019-11-23 18:57:11
【问题描述】:
我有一个 ASP.Net Core 应用程序,其中包括主项目、两个库项目和一个单元测试项目。当我运行单元测试时,它会抱怨:
[7/14/2019 9:55:38 PM Informational] ------ Discover test started ------
[7/14/2019 9:55:39 PM Warning] Test run will use DLL(s) built for framework .NETCoreApp,Version=v1.0 and platform X86. Following DLL(s) do not match framework/platform settings.
Indigo.UnitTests.dll is built for Framework 2.2 and Platform AnyCPU.
Go to http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409 for more details on managing these settings.
[7/14/2019 9:55:41 PM Informational] ========== Discover test finished: 140 found (0:00:02.2274457) ==========
[7/14/2019 9:55:41 PM Informational] ------ Run test started ------
[7/14/2019 9:55:41 PM Warning] Test run will use DLL(s) built for framework .NETCoreApp,Version=v1.0 and platform X86. Following DLL(s) do not match framework/platform settings.
Indigo.UnitTests.dll is built for Framework 2.2 and Platform AnyCPU.
Go to http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409 for more details on managing these settings.
单元测试显然运行正确。我盯着我的项目配置,我已经阅读了引用的文章,但我无法弄清楚它在抱怨什么。我用谷歌搜索了错误消息,但我发现的内容似乎不适用于我的情况。
这是我的 csproj 文件 (FWIW):
主要项目:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<UserSecretsId>xxx</UserSecretsId>
<ApplicationInsightsResourceId>xxx</ApplicationInsightsResourceId>
<ApplicationInsightsAnnotationResourceId>xxx</ApplicationInsightsAnnotationResourceId>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<TypeScriptToolsVersion>3.4</TypeScriptToolsVersion>
</PropertyGroup>
<ItemGroup>
<DotnetPublishFiles Include="App_Data/**/*">
<DestinationRelativePath>App_Data/%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</DotnetPublishFiles>
</ItemGroup>
<ItemGroup>
<Content Remove="wwwroot\bundles\ajax.js" />
<Content Remove="wwwroot\bundles\captive-page.js" />
<Content Remove="wwwroot\bundles\captive-page.min.js" />
<Content Remove="wwwroot\bundles\datepicker.js" />
<Content Remove="wwwroot\bundles\datepicker.min.js" />
<Content Remove="wwwroot\bundles\ihi-validation-extensions.min.js" />
<Content Remove="wwwroot\bundles\jquery-validation.js" />
<Content Remove="wwwroot\bundles\main.js" />
<Content Remove="wwwroot\bundles\signalr.js" />
<Content Remove="wwwroot\bundles\signalr.min.js" />
</ItemGroup>
<ItemGroup>
<_ContentIncludedByDefault Remove="wwwroot\bundles\ajax.js" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\captive-page.js" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\captive-page.min.js" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\datepicker.js" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\datepicker.min.js" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\ihi-validation-extensions.min.js" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\jquery-validation.js" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\main.js" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\main.min.css" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\signalr.js" />
<_ContentIncludedByDefault Remove="wwwroot\bundles\signalr.min.js" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Flee" Version="1.2.2" />
<PackageReference Include="Humanizer" Version="2.6.2" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.7.1" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.Azure.Services.AppAuthentication" Version="1.2.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="2.2.5" />
<PackageReference Include="Microsoft.TypeScript.MSBuild" Version="3.5.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" PrivateAssets="All" />
<PackageReference Include="Neleus.DependencyInjection.Extensions" Version="1.0.0" />
<PackageReference Include="Sakura.AspNetCore.Mvc.PagedList" Version="2.0.12" />
<PackageReference Include="Sakura.AspNetCore.PagedList" Version="2.0.2" />
<PackageReference Include="Sakura.AspNetCore.PagedList.Async" Version="1.0.0" />
<PackageReference Include="Sendgrid" Version="9.11.0" />
<PackageReference Include="Twilio" Version="5.31.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ihi.Lib.Web\ihi.Lib.Web.csproj" />
<ProjectReference Include="..\..\ihi.Lib\ihi.Lib.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Areas\Identity\Services\" />
</ItemGroup>
<ItemGroup>
<None Include="wwwroot\bundles\ajax.js" />
<None Include="wwwroot\bundles\captive-page.js" />
<None Include="wwwroot\bundles\captive-page.min.js" />
<None Include="wwwroot\bundles\datepicker.js" />
<None Include="wwwroot\bundles\datepicker.min.js" />
<None Include="wwwroot\bundles\ihi-validation-extensions.min.js" />
<None Include="wwwroot\bundles\jquery-validation.js" />
<None Include="wwwroot\bundles\main.js" />
<None Include="wwwroot\bundles\signalr.js" />
<None Include="wwwroot\bundles\signalr.min.js" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services" />
</ItemGroup>
</Project>
单元测试项目:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
<PackageReference Include="MSTest.TestAdapter" Version="1.4.0" />
<PackageReference Include="MSTest.TestFramework" Version="1.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ihi.Lib.Web\ihi.Lib.Web.csproj" />
<ProjectReference Include="..\..\ihi.Lib\ihi.Lib.csproj" />
<ProjectReference Include="..\Indigo\Indigo.csproj" />
</ItemGroup>
</Project>
第一个库项目:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="libphonenumber-csharp" Version="8.10.14" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.4" />
<PackageReference Include="MSTest.TestFramework" Version="1.4.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="protobuf-net" Version="2.4.0" />
</ItemGroup>
</Project>
第二个库项目:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Braintree" Version="4.12.0" />
<PackageReference Include="Markdig" Version="0.17.0" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.7.1" />
<PackageReference Include="Microsoft.AspNetCore.Html.Abstractions" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
<PackageReference Include="protobuf-net" Version="2.4.0" />
<PackageReference Include="RestSharp" Version="106.6.10" />
<PackageReference Include="Sendgrid" Version="9.11.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ihi.Lib\ihi.Lib.csproj" />
</ItemGroup>
</Project>
【问题讨论】:
-
它抱怨单元测试项目中使用的引用
<ProjectReference Include="..\Indigo\Indigo.csproj" />。它的格式/框架不正确。 -
好吧,我放弃了……那个项目参考有什么不正确的地方? (要加分,请解释 Visual Studio 2017 如何设法创建无效的项目引用 [我现在正在使用 VS 2019]。要获得更多分,请解释为什么直到最近它才向我抱怨。甚至更多分,解释为什么人们不赞成这个问题。)
标签: c# visual-studio unit-testing asp.net-core .net-core