K>Можно ли как-то объяснить студии, чтобы мои плагины вместе с их зависимостями при сборке автоматически раскладывались в каталог plugins\<plugin name> в каталоге со сборкой?
как написали ранее, в настройках проектов плагинов надо задать правильный output параметр.
для "старых" проектов:
<OutputPath>$(SolutionDir)\Output\$(Configuration)\$(Platform)\Plugins\$(RootNamespace)\</OutputPath>
<IntermediateOutputPath>$(SolutionDir)\Output\Temp\$(Configuration)-$(Platform)\$(RootNamespace)\</IntermediateOutputPath>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|win32'">...</>
...
для .NET 5 проектов:
common.pros файл:
<PropertyGroup>
<SolutionDir Condition="'$(SolutionDir)' == ''">..\</SolutionDir>
<MyAppRootDir>$(SolutionDir)..</MyAppRootDir>
<MyAppOutputPath>$(MyAppRootDir)\output</MyAppOutputPath>
<IntermediateOutputPath>$(MyAppOutputPath)\obj\$(Configuration)\$(AssemblyName)\</IntermediateOutputPath>
<OutputPath>$(MyAppOutputPath)\$(Configuration)\</OutputPath>
<PluginOutputPath>$(OutputPath)Plugins</PluginOutputPath>
</PropertyGroup>
В каждом проекте Plugin:
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\common.props" />
<PropertyGroup>
<OutputType>Library</OutputType>
</PropertyGroup>
<PropertyGroup>
<OutputPath>$(PluginOutputPath)\$(AssemblyName)\</OutputPath>
</PropertyGroup>
...
</Project>