2011-07-18 26 views
0

.NETプログラムを開発するためのベストプラクティスはこれだと思われます。開発中にGACのdllを決して参照しないでください。配備された.NETプログラムはGACでアセンブリを参照する方法を教えてください。

しかし、GACのdllを参照するには、実際の展開製品をどのように取得する必要がありますか?たとえば、私の製品が非常に単純なWindowsアプリケーションである場合、展開された単一の.exeファイルがGACのSystem.Windows.Forms.dllを参照するように、コードをどのようにプログラムする必要がありますか?

私は.NET開発の初心者なので、いくつかの非常に基本的なものがありません。

+0

".NETプログラムを開発するためのベストプラクティスはこれだと思われます。開発中にGACのDLLを決して参照しないでください。" [要出典] GACに自分のアセンブリを追加するのは好きではありませんが、GACのシステムアセンブリを参照することについて聞いたことはありませんでした。 – CodesInChaos

答えて

1

Add Referencesダイアログのリストから参照を追加します。これは、次のようになり、あなたの.csprojにエントリを追加します。

<ItemGroup> 
    <Reference Include="System" /> 
    <Reference Include="System.Core" /> 
    <Reference Include="System.Xml.Linq" /> 
    <Reference Include="System.Data.DataSetExtensions" /> 
    <Reference Include="Microsoft.CSharp" /> 
    <Reference Include="System.Data" /> 
    <Reference Include="System.Xml" /> 
</ItemGroup> 

あなたのプロジェクトでこれらのDLLを出荷しません。あなたは、ネットワークフレームワークのredistセットアップを出荷することができますが、あなたがダウンロードを提供しているのではなく、プログラムの物理的なコピーを発送する場合には、それは良い考えです。あなたのプログラムにそれらを含めることはおそらく著作権侵害です。 Monoではもちろん、将来のwindows/.netバージョンなどで別のSystem.Windows.Formsアセンブリを使用する必要があります。このファイルの独自のコピーを配布した場合は動作しません。

これらのアセンブリは、GACからロードされます。結局のところ、それらが.netフレームワークの一部なので、それはうまくいきます。コンパイルされた参照はmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089のようになります。このようにして、フレームワークは正しいバージョンを選択し、参照アセンブリが正しい作成者からのものであることを確認します。

GACを使用しないというガイドラインは、お客様または第三者のアセンブリを指します。それらをあなたのアプリケーションとともに出荷し、あなたのメインプログラムと同じディレクトリに置くだけです。それらをGACに追加することは、いくつかの特定のシナリオでのみ必要です。

0

GACのSystem.Windows.Forms.dllという簡単な答えはありません。代わりにそのDLLをアプリケーションに含めます。

UPDATE

あなたはGAC内のDLLへの参照を追加したい場合は、通常の[参照の追加]ダイアログを使用して行うことができます。

C:\Windows\assemblyを参照すると、これらの参照を選択できます。

+0

なぜですか?そのファイルはシステムにバインドされています。 –

+0

これはどのように質問に答えますか?私はプログラムがGACのdllをどのように参照しているか知りたいと思っています。そして、あなたはGACがそこにはなく、決して使っていないようなふりをしているようです。私は何が欠けていますか? –

+0

GACで実際にDLLを参照する方法について、もう少し詳しくお答えしました。私はあなたがGACのアイテムを決して参照すべきではないと示唆することを意味しなかった、私はあなたの質問をちょっと誤解したと思う。 –

関連する問題