我有一个使用netcoreapp2.1作为目标的.NET Core控制台应用程序。它使用Windows兼容性包调用现有的WCF服务。
当我通过Visual Studio运行它,或者使用“dotnet run”从命令行运行它时,它可以正常工作。
但是,我想将它发布为.exe文件,以便我可以通过双击运行它。
所以,我运行了发布,看起来成功了,但当我尝试运行已发布的.exe文件时,它会因以下异常而失败:
这个错误发生在我运行发布程序的机器上,如果我试图将已发布的文件夹复制到另一台机器上,也会出现这个错误。我相信
是否需要额外的配置或设置来使发布自动引入依赖项?
如果有影响的话,csproj文件中的引用看起来像这样:
当我通过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>
dotnet publish
也无法生成适当的输出以运行。请参见 https://dev59.com/Eek5XIcBkEYKwwoY2NLV。 - diegosasw