Asp.net 在生成服务器而不是开发人员计算机上编译时DLL中的差异

Asp.net 在生成服务器而不是开发人员计算机上编译时DLL中的差异,asp.net,visual-studio-2008,msbuild,user-controls,Asp.net,Visual Studio 2008,Msbuild,User Controls,我有一个将用户控件加载到.NETWeb应用程序的应用程序。当我在我的开发机器上本地编译和测试应用程序时,它在我的机器上工作。项目在生成服务器上使用MSBuild成功生成。但是,当我在生成服务器上部署由MSBuild生成的dll时,当应用程序加载控件时,会出现以下错误: BC30456:“CreateResourceBasedLiteralControl”不是“ASP.usercontrols\u somecontrol\u ascx”的成员。 我看了一下,比较了在我的机器上生成的dll,并将它(

我有一个将用户控件加载到.NETWeb应用程序的应用程序。当我在我的开发机器上本地编译和测试应用程序时,它在我的机器上工作。项目在生成服务器上使用MSBuild成功生成。但是,当我在生成服务器上部署由MSBuild生成的dll时,当应用程序加载控件时,会出现以下错误:

BC30456:“CreateResourceBasedLiteralControl”不是“ASP.usercontrols\u somecontrol\u ascx”的成员。

我看了一下,比较了在我的机器上生成的dll,并将它(查看文件大小)与构建服务器创建的dll进行了比较,然后注意到
文件大小的差异。考虑到本地构建的代码和构建服务器上构建的代码是相同的,这是令人困惑的。我手工比较了每个文件。所以我的问题是:是什么导致了这个错误?MSBuild编译代码与Visual Studio编译代码时的情况有什么不同?

您遇到了版本控制问题。目标计算机上的某些程序集与开发人员计算机上的不同。恐怕您必须进行一些挖掘才能找到它,因为此错误消息完全没有帮助。因为问题不在您的程序集中,所以它实际上指向了错误的方向。这可能是由于项目引用中的某些内容造成的。您的开发机器上是否有一些第三方工具或SDK尚未在服务器上更新


我最后一次看到这一点是在我构建DotNetNuke模块时,该模块是根据比我的服务器更新的DotNetNuke.dll程序集构建的。

您遇到了版本控制问题。目标计算机上的某些程序集与开发人员计算机上的不同。恐怕您必须进行一些挖掘才能找到它,因为此错误消息完全没有帮助。因为问题不在您的程序集中,所以它实际上指向了错误的方向。这可能是由于项目引用中的某些内容造成的。您的开发机器上是否有一些第三方工具或SDK尚未在服务器上更新


我最后一次看到这一点是在我构建DotNetNuke模块时,该模块是根据比我的服务器更新的DotNetNuke.dll程序集构建的。

如果您将其编译为
dll


尝试删除
bin
文件夹中的
App\u code.dll

如果您将其编译为
dll


尝试删除
bin
文件夹中的
App\u code.dll

您完全正确!我查看了详细的编译器输出,并看到版本控制问题被引用。这非常完美,因为我们对一个没有提供所有依赖项的应用程序应用了补丁。谢谢你的帮助。当我有一个已发布的应用程序并从FTP服务器获取文件时,以及当它没有更新目录中的所有文件时,我经常会收到这样的消息。正常的。。清除/Bin文件夹,然后再次复制所有文件。您完全正确!我查看了详细的编译器输出,并看到版本控制问题被引用。这非常完美,因为我们对一个没有提供所有依赖项的应用程序应用了补丁。谢谢你的帮助。当我有一个已发布的应用程序并从FTP服务器获取文件时,以及当它没有更新目录中的所有文件时,我经常会收到这样的消息。正常的。。清除/Bin文件夹,然后再次复制所有文件。