在本地成功构建后,无法在构建服务器上构建Toast Progress Bar解决方案。
构建服务器上的错误:
错误CS0117:“ ToastNotification”不包含“数据”的定义
错误CS0246:找不到类型或名称空间名称'NotificationData'(您是否缺少using指令或程序集引用?)
错误CS1061:'ToastNotifier'不包含'Update'的定义,并且找不到可访问的扩展方法'Update'接受类型为'ToastNotifier'的第一个参数(您是否缺少using指令或程序集引用? )
我的代码:
public void ShowProgress()
{
var definition = new XElement("toast");
definition.Add(new XElement("visual", new XElement("binding", new XAttribute("template", "ToastGeneric"),
new XElement("text", caption),
new XElement("progress",
new XAttribute("title", "{progressTitle}"),
new XAttribute("value", "{progressValue}"),
new XAttribute("status", "Downloading...")))));
var data = new Dictionary<string, string>
{
{ "progressTitle", string.Empty },
{ "progressValue", "0.00" }
};
var toast = new ToastNotification(ToXmlDocument(definition))
{
Tag = progressTag,
Data = new NotificationData(data, sequenceNumber)
};
ToastDesktopNotificationManagerCompat.CreateToastNotifier().Show(toast);
}
public void UpdateProgress()
{
...
}
我们的构建服务器是Windows Server 2016,而我的开发人员盒是Windows 10 1803,都安装了VS 2017。起初我以为我只是想念Windows 10 SDK(10.0.15063.0),因为progress functionality是必需的,但这已经安装了更新的版本。
NotificationData
位于Windows.UI.dll中,该文件位于c:\ Windows \ System32 \中,而不位于Windows SDK目录中。因此,这说明了为什么dll较旧并且在构建服务器上缺少类型。
所以问题是,是否可以在Windows Server 2016上构建进度代码,还是被迫升级到2019?