Salut, je suis en train de développer une COM en utilisant C# et Visual Studio 2005Comment faire C# COM DLL équivalent à ATL COM C++
D'abord, je l'ai fait l'interface "CSharpServer.cs"
<code>
using System;
using System.Runtime.InteropServices;
namespace CSharpServer
{
[ComVisible(true)]
[Guid("DBE0E8C4-1C61-41f3-B6A4-4E2F353D3D05")]
public interface IManagedInterface
{
int PrintHi();
}
[ComVisible(true)]
[Guid("C6659361-1625-4746-931C-36014B146679")]
public class InterfaceImplementation : IManagedInterface
{
public int PrintHi()
{
Console.WriteLine("Hello!");
return 33;
}
}
}
</code>
I compilé. La sortie est: csharp_server.dll. Après, je l'ai fait: regasm csharp_server.dll/TLB/codebase
La sortie est:
... RegAsm: avertissement RA0000: Enregistrement d'un montage non signé avec /codebase peut ca utiliser votre assemblage pour interférer avec d'autres applications qui peuvent être installé sur le même ordinateur. Le commutateur/codebase est destiné à être utilisé uniquement avec les assemblages signés. S'il vous plaît donner à votre assemblée un nom fort et ré-enregistrer il. Types enregistrés avec succès ...
1ª Question: Je dois signer? Comment?
2ª Question: Supprimé par l'auteur.
3ª Question: Je ne peux lancer que l'invite de commande "regasm" de Visual Studio. Bientôt, si je développe un composant COM en utilisant C#, et que je le distribue au client, il doit également installer Visual Studio? Si le client vient d'installer Delphi, et que vous voulez utiliser le composant, il devra installer Visual Studio?
4ª Inside Visual Studio C#, je cherche à ajouter une référence COM, mais dit:
Une référence à 'csharp_server' pourrait pas être ajouté. La bibliothèque de type ActiveX 'xxx \ csharp_server.tlb' a été exportée à partir d'un assembly .NET et ne peut pas être ajoutée en tant que référence. Ajoutez à la place une référence à l'assembly .NET. Mais dans ".NET référence". Je ne peux pas voir le composant "csharp_server".
Qu'est-ce que je fais de mal ou d'oublier?
Merci d'avance.
Merci. C'est résolu. – Cobaia
# 1ª Travaux. J'ai changé le "AssemblyInfo.cs" et Générer keypair avec la commande "sn -k keyPair.snk" # 2ª Désolé pour cette question, vraiment sur. Je vais éditer le post. # 3ª Bien que je n'ai pas généré le paquet. Je pense que cela fonctionnera comme vous l'avez dit. Merci # 4ª Parfait! Je pense avoir compris. – Cobaia