当我发布一个dotnet核心项目时,它生成了一个包含数百个框架和本机运行时文件的文件夹。
我知道这些文件是使一切工作所必需的,但是我可以将它们移动到子文件夹中并仍然让我的应用程序运行吗?
例如
MYAppFolder\
MyApp.exe
MyApp.exe.config
native\
hostfxr.dll
netstandard.dll
...
是否有某种探测路径配置可以做到这一点?
据我所知,你有一个Standalone (SCD)
应用程序。
对于那种类型的部署,hostfxr.dll
应该按照惯例存在于app目录中。
至于其他deps,您可以将它们移动到任何位置,但是您需要为每个构建编辑[AppName].deps.json
,并指定其他探测路径。此外,如果您确定不使用它们,则可以自由删除所有冗余依赖项(来自deps.json和文件本身)。
检查this demo我把Standalone
应用程序的所有依赖项放到了lib
子目录中,该应用程序可以移动到其他位置。
请注意以下事项:
NuGet package cache
因此在其中有一个包布局。另外,考虑使用Portable (FDD)
类型。您将拥有更少的占用空间和更灵活的文件排列。