2012-04-15 1 views
0

サンプルASP.NETアプリケーションはたくさんあります。すべてのファイルを変更して更新する必要があるため、すべてのサンプルのBinフォルダにDLLをコピーしないでください。ASP.NETアプリケーションをBinフォルダにコピーするのではなく、参照するように指示する方法はありますか?

フォームやコマンドラインアプリケーションで実行できるような参照でASP.NETアプリケーションを指す方法はありますか?

更新:以下の質問に答えるには、ここでの状況をちょっと説明してください。私たちはDLLのセットである商用製品を持っています。私たちはそれを使って、いくつかのASP.NETアプリケーションを含む、いくつかのサンプルアプリケーションを提供しています。これらのすべて、製品のDLLとサンプルソースは、ユーザーのコンピュータにインストールされています。

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

+0

ソースコントロールを使用していますか? – IrishChieftain

+0

サンプルアプリケーションをソリューションに追加できますか?このようにして、新たに追加されたプロジェクトには、既存のプロジェクトへの参照が与えられます( 'プロジェクト参照の追加を使用する')。 – Pankaj

+0

多分私は完全に理解していません....それは "望ましい"結果ではないでしょうか?アセンブリが更新/修正されても、アプリケーションはそれらについて知ってはいけませんか?あなたはDLLやプロジェクトを参照していますか? "コードフリーズ"したい場合は、ソリューションからサンプルプロジェクトを削除してください(?) – EdSF

答えて

2

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

1

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

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

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

1. [参照の追加直接

は、あなたが本当にただの参照を追加したい場合は、「参照」を右クリックし

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

多分オプション名は少し異なりますが、私は現在英語VSを持っていません。あなたがしなければならないものに近いはずです。このウィンドウで

EDIT

(申し訳ありませんが、それはドイツ語だ、ここでは "Lokale Kopie" として示されている)、 "偽" に "ローカルコピー" を設定。 GACで

set local copy

2.プットのdll

あなたはGACにそのライブラリを置くことについて考えることができ、同じサーバー上のアプリケーションのカップルのための共有コードライブラリを使用している場合。あなたは多分、ソースコントロールを使用し、binフォルダ内のDLLを毎回更新しないIrishChieftainから述べたように、ソース管理と

3.問題

。そのための解決策は、ソース管理のbinフォルダを無視するだけです。

+0

こんにちは;私はそれを見つけることはできません。私は参照を追加することができますし、私のBinディレクトリにDLLをコピーします。しかし人民元は私にセットのローカルコピープロパティを与えません。そのためのプロパティウィンドウでもない。このオプションを得るために何か必要なことはありますか?ありがとう - dave –

+0

うーん、私はそれがそこにあるはずです。私は自分の不動産ビューの写真を追加しました(申し訳ありません、ドイツ語)、そこにはどのような選択肢がありますか? – Marc

1

あなたはあなたのプロジェクトの参照ノード上でコンテキストメニューを使用したいすべての参照を追加できます。では enter image description here

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

0

デザイン時に特定のアセンブリを参照したくない場合があります。ロジックに基づいて、実行時に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

関連する問題