繁体   English   中英

使用.NET dll作为COM

[英]Use .NET dll as COM

我有一个令人费解的问题,需要从SQL Server 2005存储过程调用WCF Web服务。

在进行研究时,我发现.NET SQL Server 2005的唯一版本将本身支持2.0。但是,我需要使用客户端来使用为.NET 4编写的Web服务。在尝试了一些变通方法以尝试获取SQL Server之后为了识别.NET 4 DLL,我决定只创建一个.NET 2 CLR存储过程,并使用以.NET 4形式编写的包装类(公开为COM)来调用我的Web服务。

我发现了几本关于如何将.NET 4 dll与.NET 2用作COM dll的指南( linklink ),但仍然很麻烦。

我的“包装器类”(.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服务器项目中时,它无法生成并显示以下消息:

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作为参考,但是代码甚至无法编译。

或者,还有其他(更简便)的方法可以解决此问题吗?

编辑:我也不能直接添加网络参考:

在此处输入图片说明

我最终只是使用John Koerner的建议,并使用不使用System.ServiceModel WSDL生成了一个客户端。 结果,我制作了我的CLR程序集.net 2.0,它运行正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM