system.io.filenotfoundexception: не может загрузить файл или сборку 'wpf.tools.csharp (...)'. Система не может найти указанный файл.
tl; dr
Основная сборка работает до того момента, как usercontrol из вторичной сборки используется в коде. Он отображается таким образом, поэтому сборка присутствует, найдена и загружается. .NET 8 WPF Class Library Project (C#): < /p>
Код: Выделить всё
net8.0-windows10.0.19041.0
x86
true
AnyCPU;x86
enable
true
enable
isimplehost.cs:
Код: Выделить всё
using System.Runtime.InteropServices;
namespace Wpf.ComInterop
{
[ComVisible(true)]
[Guid("C2AFE629-B749-41E2-9F9E-98DF063A1D13")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface ISimpleHost
{
void ShowWindow();
}
}
Код: Выделить всё
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>
Вторая сборка: wpf.tools.csharp < /h2>
Вторая сборка, предназначенная для использования основным, также является C# WPF Class Library Project: < /p>
net8.0-windows10.0.19041.0
AnyCPU;x86
enable
true
enable
< /code>
Он имеет единый пользовательский элемент управления: < /p>
< /code>
build < /h2>
Эта сборка строит без ошибок. I generated and registered a Wpf.ComInterop.tlbTesting from a WPF Testbench
I built a simple WPF Application project that creates an instance of the Simplecominteropclass :
Код: Выделить всё
_simpleObject = new SimpleComInteropClass();
_simpleObject.ShowWindow();
< /code>
Это работает, как и ожидалось. Я создал эквивалентный проект в VB6. Сборка wpf_cominterop Код: Выделить всё
Private Sub Command1_Click()
Dim objWpf As New SimpleComInteropClass
objWpf.ShowWindow
End Sub
ascabor Создано: < /p>
Код: Выделить всё
var window = new SimpleWindow();
Код: Выделить всё
edit #2 < /h2>
Я обнаружил, что значение < /code> в файле проекта также может вызвать эту проблему. и в порядке. В этом случае исключение будет указывать версию сборки.
Подробнее здесь: https://stackoverflow.com/questions/797 ... op-project
Мобильная версия