Я внес серьезные изменения в решение, в основном преобразовав проекты в проекты в стиле SDK. Решение содержит проекты с различным FW (.net4.0, .net 4.6.1, .net4.7.2, .net4.8). Мой стартовый проект представляет собой консольное приложение .net FW 4.7.2 (*.exe), также преобразованное в стиль проекта SDK. Когда я создаю проект решение\запуск, exe-файл находится во вновь созданной папке в выходном каталоге с именем net472 (bin\debug\net472). Net472 содержит exe-файл вместе с другими библиотеками DLL, а библиотеки DLL также находятся в «исходном» выходном каталоге (bin\debug).
В csproj нет какого-либо специального свойства — я отредактировал его, включив выходной каталог, но это не повлияло. В чем может быть причина этого и что мне делать, чтобы найти exe вместе с остальными DLL в «исходном» выходном каталоге?





Попробуйте добавить следующее свойство в csproj
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
Вы также можете рассмотреть возможность установки AppendRuntimeIdentifierToOutputPath=false
Проекты SDK автоматически добавляют моник целевой платформы (TFM) (например, net472 или net8.0) и, если он присутствует, идентификатор среды выполнения (RID) (например, win-x64 или osx-arm64). Пример пути вывода: bin\Debug\net5.0\win-x64.
Для свойств AppendTargetFrameworkToOutputPath и AppendRuntimeIdentifierToOutputPath можно установить значение false, чтобы отключить автоматическое поведение и обеспечить путь вывода bin\Debug.
<PropertyGroup>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>
Чтобы применить эти настройки свойств ко всем вашим проектам, добавьте свойства в файл Directory.Build.targets, который применяется ко всем вашим проектам.