.net - 已找到应用程序依赖项 list (Test.deps.json) 中指定的程序集,但具有不同的文件扩展名 :

标签 .net iis publish .net-5 webdeploy

我正在尝试向 IIS 发布新的 .net API。因为这需要在生产服务器上完成我正在尝试使用示例 API 项目和测试服务器来确定如何首先进行此操作。
我用过 this作为引用。
项目使用.net 5.0
我安装了 windows .net core 托管包 v5.0.6
我安装了 windows .net core runtime v5.0.6
我按照所有必要的步骤在 IIS 中创建了一个应用程序池和网站。
示例项目只是您可以获得的最基本的 .net 核心 Web API 项目,只需单击 Web API 并没有进行任何更改,它只有 1 个端点和一个 swagger 页面。
当我将它发布到测试服务器并尝试在浏览器中查看 swagger 页面时,我得到了 404。
如果我使用 dotnet "Projectname".exe 运行项目 exe,我会收到以下错误消息

D:\ThirdPartyAPI>dotnet Test.exe
Error:
  An assembly specified in the application dependencies manifest (Test.deps.json) has already been found but with a different file extension:
    package: 'Test', version: '1.0.0'
    path: 'Test.dll'
    previously found assembly: 'D:\ThirdPartyAPI\Test.exe'
我试过编辑 Test.deps.json ,但是我不知道要删除什么,每次编辑它的程序集都变得无效。
我尝试将项目/运行时和应用程序池切换到 32 位,但发生了同样的事情。
如果我输入 dotnet publish 也会发生同样的事情在包管理器控制台中,然后通过转到已发布的文件夹并使用命令 dotnet run Test.exe 在本地运行 api
我尝试了在其他 SO 帖子中可以找到的所有可能的解决方案,但没有任何改变。
我加了 <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>到我的 csproj,但再次什么也没发生。
我尝试从库 key 中删除我的 Test.deps.json 中的重复项,其他一些 SO 帖子建议这样做,但这使程序集无效。
我现在完全没有想法,想完成这个,这样我就可以继续了。
如果需要,我会提供任何其他信息,在此先感谢您!
编辑:
我在 .net core 3.1 中使用示例 API 尝试了相同的过程,这是第一次尝试...
或许可以将真正的 API 移植回 3.1,但这绝对不是首选。

最佳答案

您应该运行 dotnet Test.dll或者干脆 Test.exe ,因为两者都是执行 .NET Core 应用程序的受支持方式。dotnet Test.exe不会工作,因为 dotnet CLI 期望提供托管程序集,而 Test.exe是所谓的“默认可执行文件”(实际上是没有任何托管元数据的 native Windows 二进制文件)。

关于.net - 已找到应用程序依赖项 list (Test.deps.json) 中指定的程序集,但具有不同的文件扩展名 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67775449/

相关文章:

vb.net - "Programs and Features"Win 应用程序的图标(使用 ClickOnce 部署)

c#-4.0 - 尝试从 VS 2012 发布网站时,导致 NormalizeServiceUrl 和 Missing or Invalid property 错误的原因是什么

c# - 将 Button.Enabled 绑定(bind)到多个属性

c# - 如何在每个新页面上自动添加命名空间,控件添加到 VS2008 中的网站?

C# 捕获屏幕到 8 位(256 色)位图

c# - 尝试将 .net 核心项目从 2.2 迁移到 3.1

http - IIS HTTP 到 HTTPS 相对重定向

.net - 如何从 appsettings.json 获取值

WCF 服务、应用程序域和网站

winforms - 发布Windows窗体应用程序如何更改安装路径