mono の Mono.Cecil パッケージを使用していますが、カスタム msbuild タスクから次のコマンドを呼び出すと問題が発生します。
ModuleDefinition.Write(AssemblyFileName, new WriterParameters { WriteSymbols = true });
アセンブリは正常に保存され、必要なことを正確に実行します。アセンブリ ファイル名を変更して、pdb が作成されているかどうかをテストすると、作成され、他の pdb に置き換えると、正しくデバッグされます。ただし、正常にビルドすると、アセンブリの pdb は古い pdb のままです。mono が pdb を作成しており、msbuild がそれを古いもので上書きしていると思います。
これは、プロジェクトにインポートしようとしているターゲットです:
<PropertyGroup>
<TaskAssemblyFileDir>$(SolutionDir)PropertyObserver.Tasks\$(OutDir)</TaskAssemblyFileDir>
<TaskAssemblyFileUnescapeDir>$([MSBuild]::Unescape('$(TaskAssemblyFileDir)'))</TaskAssemblyFileUnescapeDir>
<TaskAssemblyFile>$(TaskAssemblyFileUnescapeDir)PropertyObserver.Tasks.dll</TaskAssemblyFile>
</PropertyGroup>
<UsingTask TaskName="PropertyObserverTask" AssemblyFile="$(TaskAssemblyFile)" />
<Target Name="PropertyObserver" DependsOnTargets="AfterBuild">
<PropertyObserverTask AssemblyPath="$(TargetPath)" />
</Target>
pdbを作成するためのmsbuild呼び出しのターゲットが何であるかわかりません。AfterBuild だと思いましたが、そうではありません。
どんなアドバイスも役に立ちます。