我可以将本机依赖项放在子文件夹中吗
Can i place native dependencies in a subfolder
当我发布一个 dotnet 核心项目时,它生成了一个文件夹,其中包含数百个框架和本机 运行time 文件。
我知道这些文件是使一切正常工作所必需的,但是我可以将它们移到子文件夹中,同时仍然让我的应用程序进入 运行 吗?
例如
MYAppFolder\
MyApp.exe
MyApp.exe.config
native\
hostfxr.dll
netstandard.dll
...
是否有某种探测路径配置可以做到这一点?
据我所知,您有一个 Standalone (SCD)
应用程序。
对于这种类型的部署,hostfxr.dll
按照惯例应该始终存在于应用程序目录中。
至于其他部门,您可以将它们移动到任何位置,但是您需要为每个构建编辑 [AppName].deps.json
并指定 其他探测路径.此外,如果您确定不使用它们,您可以自由删除所有冗余依赖项(来自 deps.json 和文件本身)。
检查 this demo 我将 Standalone
应用程序的所有依赖项都可以移动到其他位置的 lib
子目录。
请注意以下事项:
- 附加探测路径在HelloWorld.runtimeconfig.json中设置,但您也可以使用--additionalprobingpath [path]参数或环境变量
- 我已经删除了 deps.json 文件中的相对路径,否则我会把文件放到那些相对路径的子目录中 - Additional probing path 被认为是a
NuGet package cache
因此里面有一个包布局。
此外,考虑使用 Portable (FDD)
类型。您将拥有更少的空间和更多的文件安排灵活性。
当我发布一个 dotnet 核心项目时,它生成了一个文件夹,其中包含数百个框架和本机 运行time 文件。
我知道这些文件是使一切正常工作所必需的,但是我可以将它们移到子文件夹中,同时仍然让我的应用程序进入 运行 吗?
例如
MYAppFolder\
MyApp.exe
MyApp.exe.config
native\
hostfxr.dll
netstandard.dll
...
是否有某种探测路径配置可以做到这一点?
据我所知,您有一个 Standalone (SCD)
应用程序。
对于这种类型的部署,hostfxr.dll
按照惯例应该始终存在于应用程序目录中。
至于其他部门,您可以将它们移动到任何位置,但是您需要为每个构建编辑 [AppName].deps.json
并指定 其他探测路径.此外,如果您确定不使用它们,您可以自由删除所有冗余依赖项(来自 deps.json 和文件本身)。
检查 this demo 我将 Standalone
应用程序的所有依赖项都可以移动到其他位置的 lib
子目录。
请注意以下事项:
- 附加探测路径在HelloWorld.runtimeconfig.json中设置,但您也可以使用--additionalprobingpath [path]参数或环境变量
- 我已经删除了 deps.json 文件中的相对路径,否则我会把文件放到那些相对路径的子目录中 - Additional probing path 被认为是a
NuGet package cache
因此里面有一个包布局。
此外,考虑使用 Portable (FDD)
类型。您将拥有更少的空间和更多的文件安排灵活性。