Мне нравится, когда моя папка сборки не загружен 200 файлов, поэтому я решил переместить их в подпапку под названием «libs».
Вот как я перемещаю их при сборке POST:
Код: Выделить всё
setlocal enabledelayedexpansion
IF NOT EXIST "$(OutputPath)libs" mkdir "$(OutputPath)libs"
for %%F in ("$(OutputPath)*.*") do (
set "filename=%%~nxF"
if /I NOT "!filename!"=="$(TargetName).exe" (
if /I NOT "!filename!"=="$(TargetName).dll" (
if /I NOT "!filename!"=="$(TargetName).pdb" (
if /I NOT "!filename!"=="$(TargetName).dll.config" (
if /I NOT "!filename!"=="$(TargetName).deps.json" (
if /I NOT "!filename!"=="$(TargetName).runtimeconfig.json" (
move "%%F" "$(OutputPath)libs"
))))))
)
Код: Выделить всё
const string LIB_FOLDER = "libs";
const string ASS_EXT = ".dll";
static Program()
{
AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
}
private static Assembly? OnAssemblyResolve(object? sender, ResolveEventArgs args)
{
AssemblyName assemblyName = new(args.Name);
string assemblyNameStr = assemblyName.Name + ASS_EXT;
string assemblyPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, LIB_FOLDER, assemblyNameStr);
if (File.Exists(assemblyPath))
{
return Assembly.LoadFrom(assemblyPath);
}
return null;
}
Должен ли я отказаться от мечты очистить папку сборки, оставив все библиотеки DLL там, где они сгенерированы?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-runtime