1

手動で展開したい非常に単純なWinformsアプリケーション。参照されているすべてのアセンブリは、単にアプリケーションフォルダーに入れることができますか、それともどこに公開する必要がありますか?(ASP.NETでは、\ binフォルダーに移動できます)。私はむしろGACに入れたくありません。

4

3 に答える 3

5

デフォルトでは、参照されたアセンブリを、アプリを展開するのと同じフォルダー(または、ASP.NETの場合は\ bin)に配置します。ただし、GACに展開する非常に適切な理由はありません。

于 2009-09-09T20:55:22.853 に答える
1

.NET probindを使用して、アプリケーションが開始時に.dllを検索する相対フォルダーを定義できます。アプリケーションに簡単な構成ファイルを追加するだけで済みます。単純なアプリの場合、実行可能ファイルと構成ファイルをルートディレクトリにデプロイし、必要なライブラリをlibサブディレクトリに配置します。

/
|-MyApp.exe
|.MyApp.exe.config
|-lib
   |-Lib1.dll
   |-Lib2.dll

最近の回答からのこのリンクを使用して、構成ファイルを作成する方法を確認してください

于 2009-09-09T21:53:41.653 に答える
0

Eric Jの答えはおそらく正しいものですが、アセンブリをアプリケーションフォルダー(Windows 7)に配置することに注意する理由があります。私はまだVista Hellにいるので、個人的にこの問題に遭遇したことはありませんが、どうやらWindows 7では、保護された管理者アカウント(通常は実行します)には、すべてのアプリケーションフォルダーへの書き込みアクセス権がありません。そのユーザーによってインストールされたアプリケーションフォルダーへの書き込みアクセス権のみがあります。したがって、アプリケーションがWindows XPまたはVistaユーザーによってインストールされ、そのユーザーがWindows 7にアップグレードした場合、デフォルトの保護された管理者ユーザーは、アプリケーションフォルダーへの書き込み権限を拒否されます(新しいバージョンのWindowsではSIDが異なるため) )。

この問題は、依存アセンブリをアップグレードしようとした場合にのみ影響します。また、以前のバージョンのWindowsでアプリケーションをインストールしてからWindows 7にアップグレードしたユーザーにのみ影響するため、これがどれほど大きな問題になるかはわかりません。あなたのために。

詳細については、この記事を参照してください。

于 2009-09-09T21:52:54.073 に答える