相关疑难解决方法(0)

.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
查看次数

如何将所有引用的DLL移动到c#中的单独文件夹中?

我有一个包含3个项目的解决方案.其中2个项目引用了log4net和其他几个DLL.

当我创建安装包并为每个项目添加项目输出时 - 它将DLL放入主"应用程序文件夹"中.如果我将这些DLL拖到我在安装项目中创建的单独文件夹中,应用程序将无法运行"无法找到log4net".我希望这些DLL引用真的像"bin"或任何名称,只是不是主文件夹,他们添加混乱 - 我只是想在我的主文件夹中的2.exe.

我尝试在每个项目中添加一个引用路径指向"bin"文件夹.然后在安装项目中,我添加了一个名为"bin"的输出文件夹,并将DLL移动到该文件夹​​中,仍然无效.

我错过了什么!我花了几个小时环顾四周试图弄清楚我做错了什么,也许这就是我出生的方式!谢谢你的帮助!

c# setup-project

4
推荐指数
1
解决办法
2893
查看次数

标签 统计

c# ×2

.net ×1

.net-core ×1

migration ×1

setup-project ×1