我尝试使用PowerShell(要求)创建一个带有WebView 2控件的WPF窗口,这样我就可以用本地XLST打开一个本地XML文件。我让它在Visual Studio中工作,作为使用此XAML的概念证明:
<Window x:Class="WepViewTutorial.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf">
<DockPanel>
<wv2:WebView2 Name="webView"
Source="C:\dev\webview2dev\xmlFile.xml"
/>
</DockPanel>
</Window>
字符串
这个很有效
当我使用PowerShell时,我发现了一些困难。以下是我的脚本:
Register-PackageSource -provider NuGet -name nugetRepository -location https://www.nuget.org/api/v2 -ErrorAction SilentlyContinue
install-Package -Name Microsoft.Web.WebView2 -SkipDependencies -Scope CurrentUser -ErrorAction SilentlyContinue
$webviewBase = "$(Get-Package *webview* | % source )"| Split-Path -Parent
add-type -LiteralPath "$webviewBase\lib\net45\Microsoft.Web.WebView2.Core.dll"
add-type -LiteralPath "$webviewBase\lib\net45\Microsoft.Web.WebView2.Wpf.dll"
Add-Type -assemblyName PresentationCore
Add-Type -assemblyName PresentationFramework
[xml]$xaml = @"
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
x:Name = "Window">
<DockPanel>
<wv2:WebView2 Name="webView"
Source="C:\dev\webview2dev\xmlFile.xml"
/>
</DockPanel>
</Window>
"@
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$window = [Windows.Markup.XamlReader]::Load($reader)
$window.ShowDialog()
型
但这不管用。我得到一个错误:
Exception calling "Load" with "1" argument(s): "Cannot create unknown type
'{clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf}WebView2'."
At C:\dev\webview2dev\poc.ps1:30 char:1
+ $window = [Windows.Markup.XamlReader]::Load($reader)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : XamlParseException
型
如果我从XAML中删除这一行:
<wv2:WebView2 Name="webView"
Source="C:\dev\webview2dev\xmlFile.xml"
/>
型
我需要生成WPF窗口,所以我想我错过了一些与尝试在PowerShell中为窗口启动和运行WebView 2特别相关的东西。
我读过几篇文章,指出我需要将. dll放在脚本目录中。试过了,没有成功。我读到一些东西表明我需要设置用户数据文件夹,但到目前为止还没有成功地弄清楚如何完成这一点。无论如何,我想在这里提出这个问题以寻求指导,因为我觉得我误解了一些基本的东西,就如何使其发挥作用而言。任何见解/建议将不胜感激,谢谢。
1条答案
按热度按时间edqdpe6u1#
这是工作脚本。我发现webview2.dll需要在脚本目录中。我从安装webview2的地方手动删除了它们。最终将在nuGet包安装后在脚本中包含. dll的文件副本:
字符串
对于XAML:
型