我有一个有点令人费解的问题,我需要从 SQL Server 2005 存储过程调用 WCF Web 服务。
在研究时,我发现 .NET SQL Server 2005 的唯一版本将原生支持它 2.0 - 但我需要使用客户端来使用为 .NET 4 编写的 Web 服务。在尝试了一些解决方法以尝试获取 SQL Server 之后为了识别 .NET 4 DLL,我决定简单地创建一个 .NET 2 CLR 存储过程,并使用以 COM 形式编写的 .NET 4 编写的包装类来调用我的 Web 服务。
我找到了几个指南,处理如何将 .NET 4 dll 与 .NET 2 用作 COM dll(链接、链接),但仍在苦苦挣扎。
我的“包装类”(.NET 4)如下所示:
namespace Wrapper
{
[Guid("4C1D992C-4965-49B2-A694-33810A3B9775")]
[ComVisible(true)]
public class WrapperClass
{
public bool Process(Guid ID)
{
}
}
}
我已经按照上面第二个链接的建议添加了 app.manifest 文件。但是,当我将生成的 DLL 添加到我的 .NET 2 sql server 项目时,它无法构建并显示以下消息:
1>c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): Warning: MSB3274: The primary reference "Wrapper" could not be resolved because it was built against the ".NETFramework,Version=v4.0" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v2.0".
我在这里做错了什么?我尝试根本不添加 DLL 作为参考,但代码甚至无法编译。
或者,是否有另一种(更简单的)方法可以解决这个问题?
编辑:我也不能直接添加网络参考: