1

ASP.NET アプリケーションのサンプルが多数あります。すべてのサンプルで DLL を Bin フォルダーにコピーするのは避けたいと思います。

フォームまたはコマンド ライン アプリで実行できるように、ASP.NET アプリを参照に向ける方法はありますか?

更新:以下の質問に答えるために、ここでの状況をもう少し詳しく説明させてください。DLL のセットである商用製品があります。ASP.NET アプリを含む、多数のサンプル アプリケーションを提供しています。これらすべて、製品 DLL およびサンプル ソースは、ユーザーのコンピュータにインストールされます。

サンプルの 1 つをコンパイルするときに、そのサンプルでインストールされている DLL のバージョンを使用する必要があります。インストール プロセスはデフォルト オプションとして GAC に配置されていますが、ユーザーは、DLL を GAC に入れたくない場合はチェックを外すことができます。その場合、DLL がインストールされた場所にアクセスするか、各 Bin ディレクトリにコピーする必要があります。 .

4

4 に答える 4

3

参照を追加するには、ビジュアル スタジオの bin フォルダーを右クリックします。そこに参照の追加オプションが表示されます。

于 2012-04-15T03:01:43.623 に答える
2

質問は明確ですが、背景は明確ではありません。

すべてが同じアプリケーション dll を使用するいくつかのアプリケーションを使用することは、私には意味がありません。すべてのアプリケーションで使用される単なるライブラリですか?

持っているものと必要なものに応じて、いくつかのオプションがあります。

1.参照を直接追加する

本当に参照を追加したい場合は、VS プロジェクトの「参照」を右クリックし、「参照の追加」を選択します。参照を選択し、[OK] をクリックします。その後、追加した参照を右クリックして「プロパティ」を選択し、「ローカル コピー」を false に設定すると、bin フォルダーにコピーされません。

オプション名が少し違うのかもしれませんが、私は今英語のVSを持っていません。あなたがしなければならないことはほとんどあるはずです。

編集

このウィンドウで、「ローカル コピー」を「false」に設定します (ここでは「Lokale Kopie」と表示されています。申し訳ありませんが、ドイツ語です)。

ローカル コピーを設定する

2. dll を GAC に入れる

同じサーバー上にいくつかのアプリケーション用の共有コード ライブラリがある場合は、そのライブラリをGACに配置することを検討できます。

3. ソース管理の問題

IrishChieftain から述べたように、ソース管理を使用している可能性があり、毎回 bin フォルダー内の dll を更新したくない場合があります。その解決策は、ソース管理の bin フォルダーを無視することです。

于 2012-04-15T04:08:45.003 に答える
1

プロジェクトの参照ノードのコンテキスト メニューを使用して、必要な参照を追加できます。 ここに画像の説明を入力

[参照の追加] ダイアログで [参照] タブをクリックすると、必要な外部参照を参照して追加できます。一般的なアセンブリについては、通常、ファイル システム上の共通の場所に配置し、必要なときにその場所から参照します。

于 2012-04-15T04:12:33.257 に答える
1

設計時に特定のアセンブリを参照したくない場合があります。AppDomain.AssemblyResolve イベント ハンドラーを使用して、実行時にロジックに基づいてそれらを読み込む手段があります。抽象化のレベルを介して参照でき、直接参照したくないアセンブリがある場合は、次のパターンを使用してアセンブリを省略し、実行時に何らかのアルゴリズムを実行して、アセンブリを見つけて AppDomain に追加できます。

これは、global.asax、Application_Start ハンドラーに入れたスニペットです。

public class Global : System.Web.HttpApplication
{

    protected void Application_Start(object sender, EventArgs e)
    {
        AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
    }

    System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
    {
        // use this space to add logic to find your assemblies

        return null; // will throw a Dependency-related exception
    }

質問がある場合、または質問の要点を見逃している場合はお知らせください。

-G

于 2012-04-15T04:19:06.583 に答える