簡體   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