gpt4 book ai didi

c# - .NET Core 发布的应用程序因 FileNotFoundException 而失败

转载 作者:行者123 更新时间:2023-11-30 12:20:05 26 4
gpt4 key购买 nike

我有一个目标为 netcoreapp2.1 的 .NET Core 控制台应用程序。它使用 Windows 兼容包调用现有的 WCF 服务。

当我通过 Visual Studio 运行它时,或者如果我使用 dotnet run 从命令行运行它时,它工作正常。

但是,我想把它发布到一个.exe文件中,这样我就可以通过双击运行它了。

因此,我运行了似乎成功的发布,但是当我尝试运行已发布的 .exe 文件时,它失败并出现以下异常:

System.IO.FileNotFoundException: Could not load file or assembly 
'System.Private.ServiceModel, Version=4.1.2.1, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

此错误发生在我运行发布的机器上,如果我尝试将发布的文件夹复制到另一台机器,也会发生此错误。我相信 System.Private.ServiceModel 是对 Microsoft.Windows.Compatibility 包的某种深度依赖,但为什么这不起作用?它应该已经自动复制到输出文件夹了吗?

是否需要额外的配置或设置才能让发布自动引入依赖项?

如果重要,csproj 文件中的引用如下所示:

  <ItemGroup>
<PackageReference Include="Microsoft.Windows.Compatibility" Version="2.0.1" />
</ItemGroup>

最佳答案

我遇到了同样的问题,我通过安装 System.Private.ServiceModel 包从 nuget 中手动添加了丢失的文件。

Link on nuget.org .

虽然这是一个 hack,因为从包的描述中您可以看到它是供 .Net 内部使用的,但我没有找到任何其他选项。

关于c# - .NET Core 发布的应用程序因 FileNotFoundException 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53422385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com