相关疑难解决方法(0)

DotNet Core控制台应用程序:应用程序依赖项清单中指定的程序集

我只是试图在Windows Server 2012 R2上运行DotNet Core控制台应用程序,但我不断收到此错误:

错误:找不到应用程序依赖项清单(Application.deps.json)中指定的程序集:package:'Microsoft.Web.Administration',version:'11 .1.0'path:'lib/netstandard1.5/Microsoft.Web .Administration.dll"

缺少的DLL在/ publish文件夹中...我使用正确的运行时标识符(win81-x64)进行Dotnet发布

我在服务器上安装了Dotnet runtime 2.0.7

c# .net-core

5
推荐指数
1
解决办法
4437
查看次数

由于缺少依赖项,.NET 应用程序测试在 GitHub Actions 上失败

我在 .NET 解决方案中有一组 .NET 6.0 项目,其中一个是测试数据提供程序。我正在使用LiteDB来存储测试数据记录。该解决方案在本地构建良好并成功完成所有测试。我已经使用 GitHub Actions 在 GitHub 上设置了标准 CI 构建管道;构建完成时没有出现任何问题,并且不依赖于测试数据库的测试运行良好

但是依赖于 LiteDb 数据库的测试无法运行,因为构建服务器在查找 LiteDb 程序集时似乎存在问题:

源“/home/runner/work/MyProject.Core/MyProject.Core/test/MyProject.Testing.Data/bin/Release/net6.0/MyProject.Testing.Data.dll”的测试主机进程退出并出现错误:错误:找不到应用程序依赖项清单 (MyProject.Testing.Data.deps.json) 中指定的程序集:包:'LiteDB',版本:'5.0.16' 路径:'lib/netstandard2.0/LiteDB。 DLL'

大多数具有类似错误消息的文章都与 ASP.NET Core 相关,例如,未找到应用程序依赖项清单 (...) 中指定的程序集,但抓住了救命稻草,我尝试将以下内容添加到测试数据项目中:

<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
Run Code Online (Sandbox Code Playgroud)

这没有什么区别。另一个SO答案(How do I get .NET Core items to copy NuGetreferences to the buildoutput?)建议将以下内容添加到.csproj:

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
Run Code Online (Sandbox Code Playgroud)

这解决了缺少的依赖项,但引入了一个新的依赖项:

源“/home/runner/work/MyProject/MyProject/test/MyProject.Testing.Data/bin/Release/net6.0/MyProject.Testing.Data.dll”的测试主机进程退出并出现错误:错误:An找不到应用程序依赖项清单 (testhost.deps.json) 中指定的程序集:包:'Microsoft.TestPlatform.CommunicationUtilities',版本:'15.0.0.0' 路径:'Microsoft.TestPlatform.CommunicationUtilities.dll'

(当然,我尝试添加 Microsoft.TestPlatform 作为依赖项,但这没有任何区别。)

为了完整起见,我确认 Linux 上支持 LiteDb,因为 GitHub Actions 服务在 Ubuntu 上运行 - 看起来那里没有任何问题。应用程序和所有程序集(和测试)都以 .NET 6.0 为目标,并且所有项目都设置为构建 AnyCPU。这是我的ci.yml文件,如果有帮助的话:

name: …
Run Code Online (Sandbox Code Playgroud)

c# .net-core github-actions

5
推荐指数
1
解决办法
1234
查看次数

标签 统计

.net-core ×2

c# ×2

github-actions ×1