2009-09-09 55 views

回答

5

默認情況下,我將引用的程序集放在我將應用程序部署到(或\ bin for ASP.NET)的相同文件夾中,除非有一個非常好的原因才能部署到GAC。

0

Eric J的答案可能是正確的答案,但有一個理由需要將程序集放在應用程序文件夾中:Windows 7.我個人還沒有遇到這個問題,因爲我仍然在Vista地獄,但顯然在Windows 7中,受保護的管理員帳戶(您通常在其下運行)不具有對所有應用程序文件夾的寫入權限 - 它只具有對該用戶安裝的應用程序文件夾的寫入權限。因此,如果您的應用程序是由Windows XP或Vista用戶安裝的,然後該用戶升級到Windows 7,則您的默認受保護管理員用戶將被拒絕對應用程序文件夾的寫入權限(因爲它在新版本的Windows下具有不同的SID )。

如果您嘗試升級相關程序集,此問題只會影響您,並且它只會影響在Windows早期版本下安裝應用程序並升級到Windows 7的用戶,因此我不知道有多大這將是你的交易。

有關更多詳細信息,請參閱this article

+0

你一般不必Program Files文件的寫權限在Vista下。我錯過了這一點嗎? – 2009-09-09 21:55:23

+0

@Eric J:我沒有意識到Vista也是這樣做的(我從一開始就把自己定位爲普通管理員)。我以爲我已經儘可能地討厭Vista,但我錯了。 – MusiGenesis 2009-09-09 22:29:09

1

您可以使用.NET probind來定義應用程序在啓動時應該搜索.dlls的相對文件夾。您只需在應用程序中添加一個簡單的配置文件。 對於簡單的應用程序,我部署的可執行文件和根目錄下的配置文件,然後將需要的庫在lib子目錄:

​​3210

Use this link from a recent anwer to find out how to create the config file