小编dsm*_*ith的帖子

.NET Core 3 迁移的其他探测路径

问题的简短版本:

.NET Core 3 中是否有任何方法可以使用与<probing>app.config 中的元素相同的规则来指定本地探测路径?additionalProbingPaths似乎不起作用。


问题的长版:

我正在将一个项目从 .NET Framework 迁移到 .NET Core 3。在原始项目中,我在 lib/ 文件夹中保留了许多辅助 dll。这很好用,因为我在 中设置了探测路径App.exe.config,如下所示:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="lib" />
    </assemblyBinding>
  </runtime>
Run Code Online (Sandbox Code Playgroud)

但是,将项目转换为 .NET Core 3 后,程序将无法运行,说找不到 dll。将App.exe.config仍然存在,并且仍在读/使用,因为它也包含了对System.Configuration参数信息,程序的一部分也可正常工作。

我已经确定有一个新的 json 文件存储程序的配置信息,在App.runtimeconfig.json. 它是自动生成的,默认情况下不包含其他探测路径,但App.runtimeconfig.dev.json文件包含一些。

现在,我无法使用 .dev.json 文件中的路径,因为这些路径指向本地用户目录,并且不能用于部署。但是,我可以通过使用runtimeconfig.template.json项目目录中的模板文件 ( )将我自己的版本添加到主 runtimeconfig中。这会将属性添加到runtimeOptions主 runtimeconfig 文件中的分组中。模板代码为:

{
  "additionalProbingPaths": [
    "lib"   
  ]
}
Run Code Online (Sandbox Code Playgroud)

App.runtimeconfig.json文件的最终输出是:

{
  "runtimeOptions": {
    "tfm": "netcoreapp3.0",
    "framework": {
      "name": "Microsoft.WindowsDesktop.App",
      "version": "3.0.0-preview6-27804-01"
    }, …
Run Code Online (Sandbox Code Playgroud)

.net c# migration .net-core

8
推荐指数
1
解决办法
3929
查看次数

.NET Core 1.0应用程序无法在.NET Core 1.1系统上运行

我有一个程序,我正在尝试迁移到.NET Standard/Core.该库的命令行界面是使用netcoreapp1.0的目标框架构建的.我尝试将其发送给只安装了.NET Core 1.1的测试人员(使用不同的操作系统).该程序将无法运行,并给出错误:

The specified framework 'Microsoft.NETCore.App', version '1.0.1' was not found.
- Check application dependencies and target a framework version installed at:
  /usr/share/dotnet/shared/Microsoft.NETCore.App
- The following versions are installed:
  1.1.0
- Alternatively, install the framework version '1.0.1'.
Run Code Online (Sandbox Code Playgroud)

这是预期的吗?据我了解,每个核心/标准版本都是前一版本的严格超集.因此,我预计一个针对1.0的程序仍然可以在1.1的系统上运行,而不是必须针对每个安装版本进行多目标.

更一般地说,我如何设置,以便我不必担心以后只有较新版本的.NET Core无法运行该程序的用户?

.net .net-core visual-studio-2017

7
推荐指数
1
解决办法
883
查看次数

标签 统计

.net ×2

.net-core ×2

c# ×1

migration ×1

visual-studio-2017 ×1