2017-03-10 1 views
2

최근 출시 된 .NET 툴링은 embedding C# in PDBs을 지원하는 것으로 보이므로 서드 파티 등으로 들어가는 경험을 향상시켜야합니다. csc /?을 실행하면/embed 옵션이 명확하게 나타납니다 : "PDB에 모든 소스 파일을 포함하십시오."새로운 csproj를 사용하여 PDB에 C# 소스를 임베드

그러나 csproj에서이를 지정하는 방법이없는 것 같습니다. 더구나 컴파일러에 임의의 스위치를 전달하는 조항이없는 것 같습니다. 수동으로 전달/포함하는 데 사용합니다.

내가 놓친 게 없으며/embed에 대한 빌드가 현재 부족하다는 것을 누구든지 확인할 수 있습니까? 여기에 문제가 있습니까? 모든 제안 된 해결 방법을 너무 높이 평가할 것입니다.

+0

@HansPassant 당신이 혼란 스럽다고 생각합니다 ... 설명하는 UI 옵션은 PDB를 어셈블리에 포함하고/debug : embedded에 해당합니다./embed 스위치가하는 것인데 PDB에 소스를 삽입하고 싶습니다. 그들은 서로 다른 두 가지입니다. –

답변

4

은 .csproj이를 추가하여 EmbeddedFilesItem Group를 통해이를 지원해야 로슬린의 작업처럼 보이는 :

<Target Name="EmbedSources" BeforeTargets="CoreCompile"> 
    <ItemGroup> 
     <EmbeddedFiles Include="@(Compile) " /> 
    </ItemGroup> 
</Target> 

을 ... 기본적으로 어떤 /embed option does을이다.

PDB에서 소스를 연결하려면 자동으로 SourceLink json file을 제공해야합니다 (자동으로 발생하지는 않음).

+0

이 작업을 직접 해킹하고 싶지는 않지만 SourceLink 컴파일러 옵션이 msbuild에/embed보다 더 많이 노출되어 있다고 생각하지 않습니다 ... –

+1

노출되어 있습니다 ... ['< Csc SourceLink = "your.json"/>'](https://github.com/dotnet/roslyn/blob/version-2.0.0/src/Compilers/Core/MSBuildTask/ManagedCompiler.cs#L106) 또는 [' your.json'] (http://source.roslyn.io/#MSBuildFiles/C/Users/vslsnap/.nuget/packages/Microsoft.Net.Compilers/2.0.0-rc2 -61102-09/tools/Microsoft.CSharp.Core.targets, 141) – m0sa

+0

아, 고마워.이 기능에 대한 경험이 이미있는 경우, 임베디드 소스 파일의 경우 SourceLink JSON이 필요합니까? –

관련 문제