System.io.FilenotFoundException unter Verwendung einer anderen Montage im Cominterop -ProjektC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 System.io.FilenotFoundException unter Verwendung einer anderen Montage im Cominterop -Projekt

Post by Anonymous »

Ich erhalte die folgende Ausnahme, wenn eine andere Baugruppe aus einer Cominterop -Baugruppe verwendet wird: < /p>

System.io.FilenotFoundException: Datei oder Montage kann keine Datei oder Montage laden 'WPF.Tools.csharp (...)'. Das System kann die angegebene Datei nicht finden. (C#): < /p>

Code: Select all



net8.0-windows10.0.19041.0
x86
true
AnyCPU;x86
enable
true
enable







Es enthält eine Schnittstelle und eine Klasse:
isimplehost.cs:

Code: Select all

using System.Runtime.InteropServices;

namespace Wpf.ComInterop
{
[ComVisible(true)]
[Guid("C2AFE629-B749-41E2-9F9E-98DF063A1D13")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface ISimpleHost
{
void ShowWindow();

}
}
SimpleCominteropClass.cs:

Code: Select all

using System.Runtime.InteropServices;
using System.Windows;

namespace Wpf.ComInterop
{

[ComVisible(true)]
[Guid("C3634287-1BFA-410A-BEE7-634F080E9682")]
[ClassInterface(ClassInterfaceType.None)]
public class SimpleComInteropClass : ISimpleHost
{

public SimpleComInteropClass()
{
}

public void ShowWindow()
{
try
{
var window = new SimpleWindow();
window.ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(String.Format("Error showing window: {1}{0}{0}{2}", Environment.NewLine, ex.Message, ex.InnerException), "Error");
}
}
}

}
SimpleWindow.xaml:

Code: Select all









< /code>
 Zweite Assemblierung: wpf.tools.csharp < /h2>
Die zweite Baugruppe, die von der wichtigsten verwendet werden soll, ist auch ein C# WPF -Klassenbibliotheksprojekt: < /p>



net8.0-windows10.0.19041.0
AnyCPU;x86
enable
true
enable



< /code>
Es hat eine einzelne Benutzersteuerung: < /p>





< /code>
 bauen < /h2>
Diese Baugruppe baut ohne Fehler auf. Ich habe einen wpf.cominterop.tlb 
mit DSCOM32 generiert und registriert und die wpf.cominterop.comhost.dll regsvr32 . SimpleCominteropOPCASS :

Code: Select all

_simpleObject = new SimpleComInteropClass();
_simpleObject.ShowWindow();
< /code>
Dies funktioniert wie erwartet. Ich habe ein äquivalentes Projekt in VB6 erstellt. Die WPF_COMINTEROP 
-Artage ist in der Liste der VB6 -IDE -Referenzen verfügbar, sodass sie dem Projekt als Referenz hinzugefügt wurde. Mit dem Standardform1 habe ich mit diesem Ereignishandler einen Befehl1 für die Schaltfläche "Klick Ereignis:
" hinzugefügt:

Code: Select all

Private Sub Command1_Click()

Dim objWpf As New SimpleComInteropClass
objWpf.ShowWindow

End Sub
Wenn ich auf die Taste klicke, erhalte ich die oben genannte Ausnahme:

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post