【发布时间】:2018-11-22 00:38:28
【问题描述】:
我有一个目标为 netcoreapp2.1 的 .NET Core 控制台应用程序。它使用 Windows 兼容包调用现有的 WCF 服务。
当我通过 Visual Studio 运行它时,或者如果我使用 dotnet run 从命令行运行它,它工作正常。
但是,我想将其发布为 .exe 文件,以便我可以通过双击它来运行它。
所以,我运行了似乎成功的 Publish,但是当我尝试运行已发布的 .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>
【问题讨论】: