Rejestracja własnej biblioteki w systemie

0

Napisałem w C# banalną bibliotekę do testów:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace ClassLibrary2
{
    public class TEST
    {
        public TEST()
        {
                       
        }

        public bool CzyJeden(int val)
        {
            if (val==1)
            {
                return true;
            }
            else 
            {
                return false;
            };
        }
    }
}

Jeżeli dodam referencję do tej biblioteki z innego projektu wszystko działa ok, np:

namespace WindowsFormsApplication1
{    
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ClassLibrary2.TEST SPR = new ClassLibrary2.TEST();
            if (SPR.CzyJeden(Int32.Parse(textBox1.Text)))
            {
                label1.Text = "TAK TO JEST JEDEN";
            }
            else
            {
                label1.Text = "NIE! TO NIE JEDEN!";
            }
        }
    }
}

Jednak gdy próbuję zarejestrować bibliotekę w systemie za pomocą C:\Windows\Microsoft.NET\Framework64\v2.0.50727>regsvr32/i "m:\Cl assLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll", uruchamiam konsole z uprawieniami administratora (Windows 8)
otrzymuję błąd:
bladdll.jpg

Co robię nie tak ?

0

RegServ32 dziala tylko dla bibliotek (dynamicznie linkowanych) COM. Implementuja specjalny interfejs pozwalajacy na odczytanie ich metadat. Twoja biblioteka go nie implementuje ;) dlatego podczas rejestracji nie znajdujesz "punktu wejscia". Sprobuj jako .tbl. (regasm mydll.dll /tlb:mydll.tlb)
Pozdro

0

@miroS dziękuję za odpowiedź.
Próbowałem tak:

regasm "m:\ClassLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll"/tlb: xxx.tlb

Narzędzie do rejestrowania zestaww platformy Microsoft (R) .NET Framework 2.0.50
727.7905
Copyright (C) Microsoft Corporation 1998-2004.  Wszelkie prawa zastrzeżone.

RegAsm : error RA0000 : Format podanej ścieżki nie jest obsługiwany.
regasm "m:\ClassLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll"/tlb: "l:\xxx.tlb"
Narzędzie do rejestrowania zestaww platformy Microsoft (R) .NET Framework 2.0.50
727.7905
Copyright (C) Microsoft Corporation 1998-2004.  Wszelkie prawa zastrzeżone.

RegAsm : error RA0000 : Format podanej ścieżki nie jest obsługiwany.
regasm "m:\ClassLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll"/tlb
Narzędzie do rejestrowania zestaww platformy Microsoft (R) .NET Framework 2.0.50
727.7905
Copyright (C) Microsoft Corporation 1998-2004.  Wszelkie prawa zastrzeżone.

RegAsm : error RA0000 : Nie można zlokalizować zestawu wejściowego: 'm:\ClassLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll/tlb' lub jednej z jego zależności.
regasm "m:\ClassLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll"
Narzędzie do rejestrowania zestaww platformy Microsoft (R) .NET Framework 2.0.50
727.7905
Copyright (C) Microsoft Corporation 1998-2004.  Wszelkie prawa zastrzeżone.

RegAsm : error RA0000 : Nie można zlokalizować zestawu wejściowego: 'm:\ClassLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll' lub jednej z jego zależności.

Jak widać bezskutecznie....

0

@Bartosz Wójcik a co powinno znajdować się w tej funkcji ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1