2010-01-26 47 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,以指示参考需要复制到项目的输出目录。

相关问题