Winforms:アプリケーションに付随するアセンブリはどこで発行されるべきか

StackOverflow https://stackoverflow.com/questions/1402022

  •  05-07-2019
  •  | 
  •  

質問

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

役に立ちましたか?

解決

デフォルトでは、GACにデプロイする非常に良い理由がない限り、アプリをデプロイするフォルダー(またはASP.NETの場合は\ bin)と同じフォルダーに参照アセンブリを配置します。

他のヒント

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

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

最近の回答からこのリンクを使用して検索構成ファイルの作成方法について

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

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

詳細については、この記事をご覧ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top