最近发布的.NET工具似乎支持embedding C# in PDBs,这可以改善步入第三方的经验等。运行csc /?
,我可以清楚地看到/ embed选项:“将所有源文件嵌入PDB中。”
但是,似乎没有任何方法可以在csproj中指定它。更重要的是,似乎没有任何规定将任意开关传递给编译器,我将用它来手动传递/嵌入。
任何人都可以确认我没有错过任何内容,并且目前缺乏对/ embed的构建支持吗?这是否有问题(如果不是,它会去哪里)?任何建议的解决方法也将受到赞赏。
答案 0 :(得分:5)
看起来roslyn任务应该通过EmbeddedFiles Item Group支持它们,方法是将其添加到.csproj中:
<Target Name="EmbedSources" BeforeTargets="CoreCompile">
<ItemGroup>
<EmbeddedFiles Include="@(Compile) " />
</ItemGroup>
</Target>
...基本上是/embed option does。
您可能还需要提供SourceLink
json file来连接PDB中的来源,不确定是自动发生的。
答案 1 :(得分:5)
现在有一个合适的MSBuild EmbedAllSources
property:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<EmbedAllSources>true</EmbedAllSources>
[...]
从我在本地观察到的情况来看,它的行为与提到的EmbedFiles
目标相同。