System.io.FilenotFoundException: Datei oder Montage kann keine Datei oder Montage laden 'WPF.Tools.csharp (...)'. Das System kann die angegebene Datei nicht finden. Wenn eine Instanz dieser Klasse aus der Hauptbaugruppe erstellt wird, wird das Meldungsfeld angezeigt, damit die Baugruppe vorhanden, gefunden und geladen wird. Montage < /H2>
Die Hauptbaugruppe ist ein .NET 8 WPF -Klassenbibliotheksprojekt (C#): < /p>
Code: Select all
net8.0-windows10.0.19041.0
x86
true
AnyCPU;x86
enable
true
enable
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();
}
}
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");
}
}
}
}
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
Code: Select all
_simpleObject = new SimpleComInteropClass();
_simpleObject.ShowWindow();
< /code>
Dies funktioniert wie erwartet. Ich habe ein äquivalentes Projekt in VB6 erstellt. Die WPF_COMINTEROP
" hinzugefügt:
Code: Select all
Private Sub Command1_Click()
Dim objWpf As New SimpleComInteropClass
objWpf.ShowWindow
End Sub
Code: Select all
var window = new SimpleWindow();
Code: Select all
Bearbeiten #2 < /h2>
Ich habe festgestellt, dass ein < -Assemblyversion> < /code> Wert in der Projektdatei auch zu diesem Problem führen kann. und sind in Ordnung. In diesem Fall wird die Ausnahme die Montageversion angeben.