有在github回購稱爲msbuild。我不知道該怎麼exaclty它隨.NET框架的MSBuild效用涉及,但有一個hint如何相關的文件可以發現:
private void FindRelatedFiles
(
Reference reference
)
{
string baseName = reference.FullPathWithoutExtension;
// Look for companion files like pdbs and xmls that ride along with
// assemblies.
foreach (string companionExtension in _relatedFileExtensions)
{
string companionFile = baseName + companionExtension;
if (_fileExists(companionFile))
{
reference.AddRelatedFileExtension(companionExtension);
}
}
...
}
其中_relatedFileExtensions
是一個充滿the extensions數組:
private string[] _relatedFileExtensions = new string[] { ".pdb", ".xml", ".pri" };
所以,我們可以看到,baseName
是沒有你的第三方參考擴展的完整路徑。因此,相關的* .pdb必須位於相同的目錄中,如果您希望將其複製爲ResolveAssemblyReferences target。
如果您想從其他來源複製第三方* .pdb文件,則必須處理「hackish」解決方案。其中之一是在AfterBuild目標複製:
<Target Name="AfterBuild">
<Copy SourceFiles="PathToPdb" DestinationFolder="$(OutDir)"/>
</Target>
或者您也可以將文件標記爲content:
<ItemGroup>
<Content Include="PathToPdb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
https://msdn.microsoft.com/en-us/library/ ms241613.aspx –
*需要與其關聯的.pdb文件複製到輸出目錄*請參閱德米特里的鏈接,這是不正確的。 orignal pdb文件路徑被硬編碼到dll中,它是調試器尋找它的第一個地方 – stijn