Я разрабатываю расширение для Visual Studio, которое использует DialogWindow из пространства имен Microsoft.VisualStudio.PlatformUI.Мое окно выглядит примерно так:
...
using Microsoft.VisualStudio.PlatformUI
namespace views
{
public partial class MyDialog : DialogWindow
{
public MyDialog()
{
...
InitializeComponent();
}
}
...
}
И мой xaml выглядит примерно так:
<platformUI:DialogWindow
...
xmlns:platformUi="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.14.0"
...>
...
</platformUi:DialogWindow>
Моя проблема возникает, когда это окно создается в тестовом примере Nunit,Это исключение выдается после вызова InitializeComponent ():
Message: System.Windows.Markup.XamlParseException : Provide value on 'System.Windows.Markup.StaticExtension' threw an exception.
----> System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
----> System.NotSupportedException : Microsoft.VisualStudio.Shell.Interop.SVsSettingsManager
Окно создается в методе установки Nunit, но только первый метод для создания окна вызывает это исключение.Я предполагаю, что последующие вызовы InitializeComponent () не проходят по какой-либо причине, поэтому последующий тест все еще проходит.
Я предполагаю, что причина, по которой вызывается это исключение, заключается в том, что DialogWindow не предназначено для использованиявне контекста Visual Studio, но я надеюсь, что есть решение, так как было бы трудно удалить эту конструкцию из модульного теста.У кого-нибудь есть идеи как можно это исправить?