为什么.cs文件看不到包含的dll文件的更新

时间:2011-08-31 17:26:03

标签: c# asp.net sitefinity

我有一个dll,用于访问我的.cs页面中包含的带有using语句的SQL(一种ORM系统)中的数据。由于某些原因,cs代码看不到dll(带有新字段的定义),尽管我已经在bin中上传了新的dll。它不会在dll的帮助程序类中看到我的新字段(现在已编译到dll中)。

有没有办法对dll进行故障排除,或cs告诉为什么这不会看到我更新和重建的类?该类在本地和另一台服务器上工作正常,但在我的prod服务器上,它会炸弹。

这是使用Sitefinity 3.7和Subsonic / Substage模块,如果能够解释它的话。

8 个答案:

答案 0 :(得分:0)

如果您使用的是Visual Studio,请先验证两件事: 尝试删除csproj.user和.suo文件(visual studio将重新创建它们)

第二件事是你的项目正在运行的框架版本,以及编译dll的框架版本。

如果您的项目使用的是.NET 4.0,但DLL是使用2.0或类似版本构建的,则可能无法使用它,您可以添加它,但不会加载它。

答案 1 :(得分:0)

这听起来很熟悉...你检查一下路径上是否有另一个dll被解决了? Dynamic-Link Library Search Order

答案 2 :(得分:0)

确保您的dll未在GAC的生产服务中注册。

How to extract an assembly from the GAC?

答案 3 :(得分:0)

也许你的项目中有DLL的本地副本,而且更新的DLL在别处。

答案 4 :(得分:0)

我倾向于认为你构建的dll是32位(X86)dll。当您尝试从目标为“任何CPU”的项目中使用它时。

您的生产服务器是64位吗? 如果答案为是,请转到项目属性=>构建选项卡(您的cs代码的项目不理解dll)并将平台目标设置为X86。

答案 5 :(得分:0)

如果更新的DLL具有不同的版本号,您可能需要通过deleting and re-adding a reference将项目参考更新到bin文件夹中的DLL。

如果生成DLL的项目存在于同一解决方案中,则创建文件引用(可能不会更新)而不是项目引用(将更新)可能有issue

答案 6 :(得分:0)

fuslog.exe是解决程序集(dll)绑定问题时的一个很好的工具。

http://msdn.microsoft.com/en-us/library/e74a18c4.aspx

答案 7 :(得分:0)

另一位.net开发人员帮我解决了这个问题。我有一个流氓ToString()在那里应该有一个转换为字符串,允许空值。毕竟我的dll还可以。谢谢大家的建议,我学到了很多东西。

相关问题