带COM注册的WebSetUp

时间:2011-08-21 12:39:45

标签: regasm

我在解决方案中有一个c#asp.net网站项目(VS 2008)。在这个解决方案中,有6个c#类库项目,每个项目都有wcf服务类。

所有6个类库项目dll都在asp.net网站项目中引用,它显示在bin目录中。所以这个asp.net网站是我们的wcf服务的托管服务器。我的一个c#class lib项目正在使用一个C ++ dll,它在应用程序中调用另一个C#COM dll。因此,使用Regasm.exe将此C#COM dll注册为COM,并使用P / Invoke加载C ++,并且它们都在开发环境中工作。

现在,我想要设置此服务器应用程序,并需要在IIS 7.5(Win 7 32位操作系统)中托管它。我从Internet下载了Web部署工具,并使用VS Web Setup and Deployment项目创建了设置。我无法通过SetUp在安装机器中注册C#COM dll。

在安装项目中,我添加了C#COM dll(myCOM.dll)。当我将myCOM.dll添加到Web安装项目的Web文件夹中时,它会添加另外两个文件,例如myCOM.DLL和myCOM.tlb以及myCOM.dll。

我尝试了以下方法:

第一种方法:

我删除了myCOM.DLL和myCOM.tlb。然后我选择了myCOM.dll并在属性窗格中设置了Register vsdrCOM。

然后我安装在一台机器上。但myCOM.dll未注册,并且未在Application Folder / bin文件夹中生成tlb文件。我不知道为什么???

第二种方法。

我创建了一个批处理文件,其中包含从批处理文件的当前位置注册dll的命令,如下所示:

ECHO注册开始......

PAUSE

Regasm.exe“myCOM.dll”/tlb:myCOM.tlb \ codebase - > [这将在myCOM.dll的相同位置生成tlb]

然后我创建了一个自定义安装程序,并将此安装程序添加为设置项目中的自定义操作。 [安装自定义操作]。在此安装程序类中,我重写了Install方法并编写了用于从位置C:\ inetpub \ wwwroot \ MyApp \ bin执行批处理文件的代码。

然后我尝试将其安装在一台机器上。安装时,批处理(cmd)的控制台窗口会显示一秒钟,然后突然关闭cmd窗口。安装完成后,我查看了c:\ inetpub \ wwwroot \ MyApp \ bin文件夹,没有任何内容。

我的安装可能会出现什么问题???

请注意一下。

0 个答案:

没有答案
相关问题