我首先通读了这个类似于我的建议问题,但没有解决方案:为什么 MSTest.TestAdapter 将其 DLL 添加到我的 NuGet 包中?
快速问题描述
我写了一个NuGet包,每一次我安装它,NUnit和NUnit3TestAdapter .dll的被添加到我安装的项目。我想找到解决此问题的解决方案。
重现步骤
我推送了两个 git 存储库来重现我所描述的问题。
ClientLibrary/ MainFramework(我从中生成 NuGet 包的项目)- https://github.com/harbourc/client-library-repro-nuget-issue
TargetProject(要安装该软件包的项目)- https://github.com/harbourc/target-project-repro-nuget-issue
您可以克隆两个存储库,还原它们的 NuGet 包,并按如下方式重现问题:
在 client-library-repro-nuget-issue/ClientLibrary/ 中找到 ClientLibrary.1.0.0.nupkg
为 target-project-repro-nuget-issue 打开包管理器控制台并运行
Install-Package C:\Path\To\client-library-repro-nuget-issue\ClientLibrary\ClientLibrary.1.0.0.nupkg
Run Code Online (Sandbox Code Playgroud)
NUnit和NUnit3TestAdapter .dll被加入的TargetProject-尽管TargetProject已经有了NUnit和NUnit3TestAdapter安装。更长的概述
我创建了自己的 NuGet 包供内部使用,称为ClientLibrary,并且我试图将它安装到另一个名为TargetProject. 这是结构的快速分解:
FullSolution.sln
MainFramework.csprojClientLibrary.csproj-->.nupkg由此产生单独项目:
TargetProject.sln
TargetProject.csproj--> 安装.nupkg到这个ClientLibrary有对 的引用 …
在对控制器进行 ajax 回调以从数据库获取注释时,出现以下错误:
注意:未定义的属性:App\Entity\ExceptionReport::$typeID
评论与与异常报告相关的用户相关,因此我猜测这种关系是引发错误的原因。我不确定设置最大深度是否是我需要实现的,所以我尝试在注释类中的用户字段上设置最大深度,但得到了相同的错误。
public function getComments(CommentRepository $commentRepository, SerializerInterface $serializer) {
$comments = $commentRepository->findAll();
$encoder = new JsonEncoder();
$defaultContext = [
AbstractNormalizer::CIRCULAR_REFERENCE_HANDLER =>function($object) {
return $object->getUsername();
}
];
$normalizer = new ObjectNormalizer(null, null, null, null, null,
null, $defaultContext);
$serializer = new Serializer([$normalizer], [$encoder]);
return $serializer->serialize($comments, 'json');
}
Run Code Online (Sandbox Code Playgroud) 这个程序没有按预期工作,我不知道为什么。错误是CS0266 "
Error CS0266 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<char>' to 'string'. An explicit conversion exists (are you missing a cast?)
但是,它应该在使用 System.Linq 下正常工作;
using System;
using System.Linq;
namespace centuryyearsminutes
{
class Program
{
static void Main(string[] args)
{
string aa = "Hello World!";
string bb = aa.Reverse();
Console.WriteLine(bb);
}
}
}
Run Code Online (Sandbox Code Playgroud)