繁体   English   中英

元素中的“包含”属性<packagereference>无法识别</packagereference>

[英]The attribute "Include" in element <PackageReference> is unrecognized

我通过右键单击解决方案资源管理器上的解决方案创建了一个Directory.Build.props文件,创建了一个 XML 文件,并将其命名。 然后我输入这个 XML 并尝试构建但遇到错误:

<Project>
    <PropertyGroup>
        <Version>1.2.3</Version>
        <Authors>John Doe</Authors>
        <PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="6.0.0">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
        </PackageReference>
    </PropertyGroup>
</Project>

错误说: The attribute "Include" in element <PackageReference> is unrecognized.

Project "C:\redacted\Directory.Build.props" was not imported by "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Microsoft.Common.props" at (33,3), due to the file being invalid. ProjectName C:\Users\me\source\redacted\ProjectName\Directory.Build.props   33  

我在这里很困惑。 其他文章说要找到 MSBuild,我知道它在我的机器上。 在我添加 XML 之前,构建工作正常。 任何指导将不胜感激。 顺便说一句,我目前正在使用 Visual Studio 2022。

PackageReference元素需要在ItemGroup中 - 您已经在PropertyGroup中获得了它。 它应该如下所示:

<Project>
    <PropertyGroup>
        <Version>1.2.3</Version>
        <Authors>John Doe</Authors>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="6.0.0">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
        </PackageReference>
    </ItemGroup>
</Project>

我曾经遇到过同样的问题,我发现它是由“\xef\xbb\xbf#”引起的,它是一个“Unicode BOM(字节顺序标记)”,由某些文本编辑器(如 Notepad++)添加的不可见字符组成, 例如。 BOM 通常用作一个幻数,用于将信息传递给读取文件的程序,例如 Unicode 字符编码或字节序,但它的存在可能会干扰意想不到的软件。 我通过侥幸找到它的方式是我在 github 上有我的 csproj 文件,当我点击“编辑”时,BOM 像一个红点一样突出。 我只是退格了,然后一切顺利。

我遇到了同样的问题,对我来说这是由于无效的 XML 结构:

<ItemGroup>
    <PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.2.32">
    <PackageReference Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="3.3.3">
    </PackageReference>
</ItemGroup>

如您所见,第一个 PackageReference 标记未关闭,导致完全相同的错误The attribute "Include" in element <PackageReference> is unrecognized. 在第二个 PackageReference 标记上。

有效的 XML 结构:

<ItemGroup>
    <PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.2.32"/>
    <PackageReference Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="3.3.3"/>
</ItemGroup>

我希望可以帮助别人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM