1

我正在使用在 Visual Studio 2008 中创建的 .NET 3.5 类库,后来在 Visual Studio 2010 中更新和重新编译。发生了最奇怪的事情:解决方案资源管理器中列出的 Web 引用之一实际上并未编译进入 DLL(通过使用 .NET Reflector 检查 DLL 来证明),并且分别没有错误或警告。我尝试使用谷歌搜索并搜索此站点,但找不到任何适用的信息。任何关于为什么会发生这种情况的建议将不胜感激!希望提供的信息足够;否则我应该能够提供更多。

编辑: Web 引用的命名空间显示在解决方案资源管理器中,但不在对象浏览器中。我的一些同事说这是 Web 服务本身的问题。我应该提到它是一个 SAP Web 服务,在开发过程中,我们正在与一个最近升级的测试环境进行交互,并且可能会出现问题。一旦我更加确定,我会确认这是否是原因,所以请不要犹豫,同时分享任何相关信息。

编辑(2):请参阅我对Cyborgx37 的回答的第一个回复以进一步澄清,包括生成的客户端错误。

4

2 回答 2

1

这有点令人费解:我所做的只是将 Web 引用放入对象浏览器中 - 因此在编译时进入实际的 DLL 中 - 将其重命名为其他名称,然后将其恢复为旧名称(保留此名称是可选的)名称相同)。一定喜欢奇怪的微软问题。希望这可以帮助其他最终遇到同样问题的人!

于 2012-12-26T20:52:12.097 回答
0

如果我理解正确,您想知道为什么引用的程序集没有编译您的 DLL 中。

引用的程序集通常不会编译到 DLL 中。您的 DLL 将包含一个指向外部资源的指针,而 .NET 将尝试使用几种策略之一来定位它(然后将其加载到内存中,以便您的应用程序可以使用它)。

您可能会发现这篇文章很有启发性:

运行时如何定位
程序集 要成功部署 .NET Framework 应用程序,您必须了解公共语言运行时如何定位和绑定到构成应用程序的程序集。...

于 2012-12-26T17:29:26.450 回答