2014-11-17 3 views
2

임시 해결책으로 (내부 Symbol 서버 설정이 완료 될 때까지) 사용자의 코드를 디버그 할 수 있도록 DLL의 모든 소스 코드가 포함 된 Nuget 패키지를 작성하려고합니다.Nuget 소스 코드를 사용하여 디버깅하는 방법

나는 내가 내 DLL을 포함하여 멋진 패키지와 함께 끝이 Nuspec 파일을 빌드 추가 할 때 다음과 같은 Nuspec 파일

<?xml version="1.0" encoding="utf-8"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> 
    <metadata> 
     <id>My Assembly</id> 
     <version>1.0.0</version> 
     <title>My Assembly</title> 
     <authors>Me</authors> 
     <owners>Me</owners> 
     <requireLicenseAcceptance>false</requireLicenseAcceptance> 
     <description>My description</description> 
     <copyright>© Me 2014</copyright> 
      <dependencies> 
      <dependency id="Autofac" /> 
      <dependency id="Autofac.Configuration" /> 
      <dependency id="Autofac.Web"/> 
      <dependency id="AutoMapper" /> 
      <dependency id="FluentNHibernate" /> 
      <dependency id="Iesi.Collections"/> 
      <dependency id="Newtonsoft.Json" /> 
      <dependency id="NHibernate"/> 
     </dependencies> 
      <frameworkAssemblies> 
    <frameworkAssembly assemblyName="System.Web" /> 
</frameworkAssemblies> 
    </metadata> 
    <files> 
    <file src="bin\MyAssembly.dll" target="lib" /> 
    <file src="bin\MyAssembly.pdb" target="lib" /> 
    <file src="**\*.cs" target="src"/> 
    </files>   
</package> 

을 구축해야, 플러스 폴더는 소스 코드를 포함 SRC를했다.

내가 할 수없는 방법은 Visual Studio에서 참조 된 DLL로 디버깅 할 때 src 디렉토리에서 .cs 파일을 사용하도록하는 것입니다 (현재 모두 해체 된 미리보기입니다). 이것은 아마도, 나는 그것이 있어야한다고 생각하지만, 나는 이것을하는 방법의 예제를 찾을 수 없습니다.

편집 : 답변 해 주셔서 감사합니다. 참고로, 내가 이것을 발견 한 다른 방법은 소모 솔루션 Common Properties -> Debug Source Files 목록에 Nuget 패키지의 'src'폴더를 추가하는 것입니다.

답변

0

프로그램을 실행하는 동안 Debug | Modules 창을 불러올 수 있습니다. 거기에서 DLL을 선택하고 해당 PDB 파일을 찾을 수 있습니다. 그런 다음 소스 CS 파일을 수동으로 열고 중단 점을 설정할 수 있습니다. Visual Studio는 PDB와 CS가 컴파일 된 CS 파일에 해당하는지 확인합니다. 그러나 패키지를 함께 패키지화 했으므로이 파일을 사용해야합니다.

+2

감사합니다. 조금 더 많은 정보가 포함되도록 제 질문을 수정했습니다. VS가 자동으로 'src'폴더를 확인하지 않는 것은 부끄러운 일입니다. Nuget pacakges의 소스 코드를 포함하는 기본 위치로 간주되기 때문입니다. – StrictlySocial

+0

정보를 제공해 주셔서 감사합니다. 전에 VS 대화 상자를 보지 못했습니다. NuGet은 여전히 ​​VS의 외부인처럼 보입니다. – fejesjoco

+0

IntelliJ/Java에서 제공하는 소스가 NuGet 패키지에 노출되어 있다면 소스가 기본적으로 연결되어 있다는 사실에 절대적으로 놀랐습니다. 분명히 놓친 것입니다. –

관련 문제