Есть ли способ решить проблему отладчика для каждого проекта в решении при отладке с помощью PostSharp? В настоящее время у меня есть 14 проектов в моем решении, и попытка отладки только одного из них с PostSharp кажется очень сложной, потому что окно приложения отладчика появляется для каждого проекта в решении. Если я захочу подключиться к неправильному процессу отладчика, то точка останова, которую я установил, не попадает, а затем, когда она начинает строить следующий проект, появляется другое окно, в котором нет активного активного экземпляра VS. Есть ли флаг в msbuild, который я могу использовать, чтобы сказать "использовать один и тот же процесс отладчика для всех требований процесса отладчика" или что-то в этом роде?
Насколько я понимаю, вы отлаживаете логику компиляции своего аспекта, следуя шагам из документации PostSharp.
Когда вы установите свойство "attach debugger" в командной строке, как показано ниже, свойство будет установлено для всех проектов, участвующих в сборке. И поэтому привязка к отладчику вызывается для каждого из этих проектов.
msbuild MyAspects.Test.csproj /T:Rebuild /P:PostSharpAttachDebugger=True
Вместо этого вы должны установить свойство только для одного проекта, где он вам нужен, временно отредактировав файл *.csproj:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PostSharpAttachDebugger>True</PostSharpAttachDebugger>
<!-- ... -->
</PropertyGroup>
Если вы не хотите напрямую редактировать *.csproj, вы можете поместить файл PostSharp.Custom.targets в каталог проекта и определить свойство в этом файле.
<? xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PostSharpAttachDebugger>True</PostSharpAttachDebugger>
</PropertyGroup>
</Project>