2

一時的な解決策として (内部のシンボル サーバーのセットアップを取得するまで)、ユーザーがコードをデバッグできるように、DLL のすべてのソース コードを含む Nuget パッケージをビルドしようとしています。

次の 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>

この Nuspec ファイルを追加ビルドすると、DLL を含む素敵なパッケージと、ソース コードを含む src というフォルダーが作成されます。

どうすればよいかわかりませんが、参照された DLL でデバッグするときに Visual Studio で src ディレクトリの .cs ファイルを使用するようにすることです (現在取得しているのは逆アセンブルされたプレビューだけです)。これは可能ですか、そうあるべきだと思いますが、これを行う方法の例は見つかりません。

編集:受け入れられた回答をありがとう。これを行うために私が見つけたもう1つの方法は、消費ソリューションの共通プロパティ->ソースファイルのデバッグリストにNugetパッケージの「src」フォルダーを追加することです。

4

1 に答える 1

0

プログラムの実行中に、Debug|Modules ウィンドウを開くことができます。そこから、DLL を選択し、対応する PDB ファイルを参照できます。その後、ソース CS ファイルを手動で開き、ブレークポイントを設定できます。Visual Studio は、PDB と CS がコンパイルされた CS ファイルに対応するかどうかを確認しますが、それらを一緒にパッケージ化するので問題ありません。

于 2014-11-17T12:41:51.400 に答える