我正在使用一个。net 3.5类库,它是在Visual Studio 2008中创建的,后来在Visual Studio 2010中更新和重新编译。最奇怪的事情正在发生:在解决方案资源管理器中列出的一个Web引用实际上并没有编译成DLL(通过使用。net Reflector检查DLL来证明),并且没有分别出现错误或警告。我试着谷歌和搜索这个网站,我找不到任何适用的信息。任何关于为什么会发生这种情况的建议将非常感激!希望提供的信息是足够的;否则我应该能提供更多。
Edit: Web Reference的命名空间显示在解决方案资源管理器中,但不在对象浏览器中。我的一些同事说这是Web服务本身的问题。我应该提到,它是一个SAP Web服务,在开发过程中,我们正在与最近升级的测试环境进行交互,并且可能会出现问题。一旦我有更多的把握,我会确认这是否是原因,所以请不要犹豫,同时分享任何相关信息。
编辑(2):请参阅我对Cyborgx37的回答的第一个回应,以进一步澄清,包括生成的客户端错误。
这有点令人困惑:我所做的就是将Web引用重新命名为其他名称,然后将其恢复为旧名称(这是可选的,以保持名称相同),从而将Web引用放入对象浏览器中-从而在编译时进入实际的DLL中。我喜欢奇怪的微软问题。希望这能帮助那些最终遇到同样问题的人!
如果我理解正确,您想知道为什么引用的程序集没有编译成您的DLL。
引用的程序集通常不会编译到DLL中。相反,你的DLL将包含一个指向外部资源的指针,. net将尝试几种策略中的一种来定位它(然后将其加载到内存中,以便你的应用程序可以使用它)。
你可能会发现这篇文章很有启发性:
运行时如何定位程序集
要成功部署。net Framework应用程序,必须了解公共语言运行库如何定位并绑定到组成应用程序的程序集. ...