2011-04-20 65 views
1

我有一个WinForms项目和解决方案,一些类库项目也添加到相同的解决方案。在WinForms中混淆DLL使用

WinForms项目使用类库中的代码。我一直在使用这个应用程序大约一年,它一直运行良好。

但是,今天,我向类库中添加了一些功能,但这些更改不会出现在正在运行的应用程序中。我也尝试在其中一个类中添加一个新的公共方法,但该方法不会在Intellisense中为应用程序显示。

这应该是非常简单的解决,但随着WinForms在幕后自动复制DLL的方式,我不知道问题出在哪里。我所看到的一切似乎都适合我。代码继续工作,因为它认为它使用的是旧版本的DLL。但是我的WinForms应用程序的Bin目录中的DLL有今天的日期。

任何人都可以推荐我应该在哪里寻找解决方案吗?

回答

1

根据Michael's answer您可能会发现程序集引用实际上并不是一个项目引用,而是一个特定的路径,而不是您编译到的路径(例如bin \ Release)。

此外,这可能听起来微不足道,但仔细检查一下,当您使用Build函数时,解决方案的Configuration Properties实际上正在构建项目!我已经关闭了建筑项目,忘记了我这样做,然后当他们的变化不在我的应用程序中时,我感到困惑!

+0

谢谢,但我觉得整个过程设计得不好。什么是设置参考的正确方法?我是否参考项目或编译的DLL? Debug和Release版本的答案是否改变? – 2011-04-20 18:14:46

+1

如果您的代码是解决方案的一部分,那么您应该使用项目引用,因为它可以确保您在构建类型之间不会有任何问题。虽然增加了缺点,但可能会增加编译时间。好处是,如果你的依赖关系发生了变化,你的依赖关系将被自动重建。 – Reddog 2011-04-20 18:19:34

0

您是否已将任何类库添加到GAC中?

如果在GAC中使用与AssemblyVersion相同的强名称的Assembly,将使用此代替解决方案中的那个。

+0

我很确定我没有。但是,再次,这整个布局似乎已经精心打造成一个黑盒子,对于偶然的观察者来说是一个完全神秘的东西。 – 2011-04-20 17:49:42

2

我会进入项目属性,删除引用,重新添加它来验证你的dll是否来自你认为它的位置。 Clean &重建项目

+0

谢谢,但我发现整个过程设计得不好。什么是设置参考的正确方法?我是否参考项目或编译的DLL? Debug和Release版本的答案是否改变? – 2011-04-20 18:16:46

+0

如果您正在积极修改包含的项目,请将其添加为项目参考。 – Michael 2011-04-20 18:43:11