WPF中引用的.NET标准类库 - 在设计时在XAML中签名错误

lvo*_*ros 5 c# wpf xaml .net-standard

我做了一个netstandard类库.我的目标是netstandard 1.6.我的csproj就像:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup Label="Globals">
    <SccProjectName>SAK</SccProjectName>
    <SccProvider>SAK</SccProvider>
    <SccAuxPath>SAK</SccAuxPath>
    <SccLocalPath>SAK</SccLocalPath>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>netstandard1.6</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="System.Runtime" Version="4.3.0" />
    <PackageReference Include="System.Runtime.Serialization.Primitives" Version="4.3.0" />
    <PackageReference Include="System.Runtime.Serialization.Xml" Version="4.3.0" />
  </ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

我有一个WPF项目,我参考了这个dll.我可以在c#中使用netstandard dll的类.我也可以在xaml中使用它们.我甚至对他们有所了解.但是xaml设计师说,我的xaml无效.我可以编译解决方案,我可以运行应用程序.在运行时一切正常.但设计师无法使用它.

在此输入图像描述

Person类看起来像:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Text;

namespace DS.Publications.Common
{
    [DataContract(Namespace = Constants.NamespaceConstants.DataContractNamespace)]
    public class Person : INotifyPropertyChanged
    {
        private string _Title = string.Empty;

        [DataMember]
        public string Title { get { return _Title; } set { Set(ref _Title, value); } }



        private string _ForeName;

        [DataMember]
        public string ForeName { get { return _ForeName; } set { Set(ref _ForeName, value); } }

        private string _LastName;
        [DataMember]
        public string LastName { get { return _LastName; } set { Set(ref _LastName, value); } }



        public event PropertyChangedEventHandler PropertyChanged;
        private void OnPropertyChanged(string propertyName)
        {
            this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

        private bool Set<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
        {

            if (field == null || !field.Equals(value))
            {
                field = value;
                this.OnPropertyChanged(propertyName);
                return true;
            }
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

你知道一个解决方法,或者你有一个想法,我该如何纠正它?

lvo*_*ros 0

我还没有真正找到这个问题的解决方案...我已将 netstandard 库的目标框架设置回 netstandard1.3。当目标为 1.3 时,一切正常。我希望下一个 VS 更新会提供修复。

附言。当我将目标设置为 netstandard1.3 时,我遇到了问题,即找到了旧的 netstandard1.6 二进制文件,直到我真正清理了解决方案,如下所示: 如何真正清理解决方案。