У меня есть некоторые .Net-функции, которые я пытаюсь использовать в VB6. Я следил за несколькими учебниками. Я с успехом написал тестовую программу, используя формулу: http://www.codeproject.com/Articles/3511/Exposing-NET-Components-to-COMвыставляя .Net для COM
Однако, когда я пытаюсь сделать это с помощью моего фактического проекта, мой ProgId не отображается в реестре, как мой тестовый файл. Я убедился ComVisible свойство == верно
using System.Runtime.InteropServices;
namespace Controls.Graph.Web
{
[Guid("5F9F6C6F-016A-4CFF-BD7A-3463761807E1")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface _GraphScript
{
[DispId(1)]
string getGraphXml();
}
[Guid("35901BC6-EFF1-490C-84FA-786E8462C553")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId(ProgIds.GraphScript)]
public class GraphScript : _GraphScript
{
protected GraphScript()
{
}
/// <summary>
///
/// </summary>
/// <returns>The graphs xml and javascript</returns>
public string getGraphXml()
{
DisplayDefaults tempDefaults;
tempDefaults = new DisplayDefaults();
GraphConstructor graph = new GraphConstructor();
graph.constructGraph();
GraphModel completedGraph = graph.Graph;
return GraphControl.RenderGraph(completedGraph, tempDefaults, 1) + GraphControl.RenderGraphScript();
}
}
}
и мой ProgID ...
using System;
namespace Controls.Graph.Web
{
/// <summary>
/// ProgID Constant
/// </summary>
public static class ProgIds
{
public const string GraphScript = "GraphData";
}
}
Я не уверен, какой кусок головоломки я здесь отсутствует
EDIT: на самом деле Руководство отображается в реестре, однако Progid все еще нет. Любые идеи/предложения?
также уверен, чтобы сделать это:
Как вы регистрируете свою сборку? Вы регистрируете его как 32-битную или 64-битную? Если вы регистрируетесь под 32-битным, вам нужно посмотреть в разделе реестра WOW64. – vcsjones
Я не уверен. Как мне узнать/указать, какой из них я хочу? – Ted
ОК, похоже, что у вас есть 'Регистрация для COM interop', заботясь об этом для вас. У вас есть подписанная вами подписка под сильным именем (под подпиской)? IIRC, который также необходим для воздействия на COM. – vcsjones