1

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

有没有办法对 dll 或 cs 进行故障排除来说明为什么这不会看到我更新和重建的类?该课程在本地和另一台服务器上运行良好,但在我的产品服务器上,它会爆炸。

这是使用带有 Subsonic/Substage 模块的 Sitefinity 3.7,如果这对它有所了解的话。

4

8 回答 8

0

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

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

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

于 2011-08-31T17:31:29.040 回答
0

这听起来很熟悉......你有没有检查过路径上是否有另一个 dll 得到解决?动态链接库搜索顺序

于 2011-08-31T17:31:30.613 回答
0

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

如何从 GAC 中提取程序集?

于 2011-08-31T17:34:16.730 回答
0

也许您的项目中有 DLL 的本地副本,而更新的 DLL 在其他地方。

于 2011-08-31T17:34:44.017 回答
0

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

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

于 2011-08-31T17:52:59.283 回答
0

如果更新的 DLL 具有不同的版本号,您可能需要通过删除并重新添加对 bin 文件夹中 DLL的引用来更新对它的项目引用。

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

于 2011-08-31T18:32:25.047 回答
0

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

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

于 2011-08-31T18:38:28.393 回答
0

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

于 2011-10-19T23:13:15.593 回答