2010-01-26 50 views
1

.NET(或Visual Studio)如何構建決定是否將引用的程序集複製到bin/debug或bin/release目錄? (這是一個.exe控制檯程序。)將.NET引用的程序集放入bin debug中的規則

在我的機器上,我在GAC中引用了程序集。一位同事將我的bin/release複製到他們的機器上,並且它不會運行,因爲引用的asssembly不在bin/release中(而不在他們的GAC中)。

謝謝,

尼爾沃爾特斯

+0

因爲這個原因,通常最好避免使用GAC。 – GraemeF 2010-01-26 22:03:05

+0

當我聽到這個建議時,我總是畏縮。雖然我同意將自己的程序集放在開發機器上的GAC中並不是一個好主意,但完全避免使用GAC會對性能產生巨大影響,尤其是在涉及NGEN時。 – Josh 2010-01-26 22:14:14

+0

從BizTalk調用的C#必須位於GAC中 - 沒有選擇的人。我有幾十個常用的例程,所以我可以使用BizTalk和非BizTalk。 – NealWalters 2010-01-26 22:25:10

回答

4

如果裝配不GAC,那麼它的複製。屬性窗口中的CopyLocal屬性告訴程序集是否被複制。

+2

+1。作爲一個方面說明,如果可以的話,遠離GAC'ing組件。 GAC就像DLL地獄的第三層。 – NotMe 2010-01-26 22:04:01

+0

這是我們通常從BizTalk調用的需要它的.DLL。完全忘了「CopyLocal」。但是當GAC中的東西是由VisualStudio將CopyLocal設置爲False時,否則是真的?如果您從「瀏覽」選項卡和「項目」選項卡中執行參考,是否會有所幫助? – NealWalters 2010-01-26 22:11:07

+0

另外 - 如果你參考.dll的bin/debug,那麼怎麼辦?這是您在.Exe的bin/release中獲得的唯一副本嗎?當事件在GAC中時, – NealWalters 2010-01-26 22:12:27

1

當您添加對項目的引用(項目 - >添加引用...或在解決方案資源管理器中右鍵單擊引用並選擇添加引用...)時,可以右鍵單擊添加的引用並選擇屬性。然後,您將在屬性窗口中看到CopyLocal屬性。可以將其設置爲True或False,以指示參考需要複製到項目的輸出目錄。

相關問題