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