Visual studio 包含NuGet包中的XML文档

Visual studio 包含NuGet包中的XML文档,visual-studio,.net-core,nuget,Visual Studio,.net Core,Nuget,我有一个带有xml文档文件(doc.xml)的NuGet包 我已经在我的项目中安装了NuGet软件包 我知道我想将NuGet文档文件doc.xml添加到我的解决方案中 我正在运行.NETCore3.1,但我不知道如何实现这一点 谢谢大家! 如果您的nuget项目是net standard或net core,请检查以下步骤: 1)在项目上名为build的文件夹下创建一个名为.props的文件 请注意,您应该确保nuget项目的包id与.props文件相同,否则它将无法工作。看 在我这边,我的nu

我有一个带有xml文档文件(doc.xml)的NuGet包

我已经在我的项目中安装了NuGet软件包

我知道我想将NuGet文档文件doc.xml添加到我的解决方案中

我正在运行.NETCore3.1,但我不知道如何实现这一点


谢谢大家!

如果您的nuget项目是
net standard
net core
,请检查以下步骤:

1)在项目上名为build的文件夹下创建一个名为
.props
的文件

请注意,您应该确保nuget项目的
包id
.props
文件相同,否则它将无法工作。看

在我这边,我的nuget包名为
test.1.0.0.nupkg
,因此我应该将该文件重命名为
test.props
文件

<Project>

    <Target Name="CopyFilesToProject" BeforeTargets="Build">
        <ItemGroup>
            <SourceScripts Include="$(MSBuildThisFileDirectory)..\File\*.*"/> 
        </ItemGroup>
        <Copy
           SourceFiles="@(SourceScripts)"
           DestinationFolder="$(ProjectDir)"     
        />
    </Target>


</Project>
2)请将这些内容添加到
test.props
文件中

<Project>

    <Target Name="CopyFilesToProject" BeforeTargets="Build">
        <ItemGroup>
            <SourceScripts Include="$(MSBuildThisFileDirectory)..\File\*.*"/> 
        </ItemGroup>
        <Copy
           SourceFiles="@(SourceScripts)"
           DestinationFolder="$(ProjectDir)"     
        />
    </Target>


</Project>
4)那么,打包项目时,结构应如下所示:

在安装此新版本的nuget软件包之前,您应该删除或只是删除
C:\Users\xxx(当前用户)\.nuget\packages
下的所有缓存文件,以便在仍然安装旧版本的情况下删除旧版本

之后重建主项目以执行目标,您将看到主项目文件夹下存在xml文档文件

此外,如果您使用的是
netframework
项目,该链接还提供了方法

===========================

更新1

如果要将文件复制到
bin\Release
bin\Debug
,应修改步骤2,将其更改为在
文件中使用

<ItemGroup>
    <None Include="bin\Debug\netcoreapp3.1\test.xml(the path of the xml file in your nuget project)" Pack="true" PackagePath="File"></None>
    <None Include="build\test.props(the path of the test.props file in your nuget project)" Pack="true" PackagePath="build"></None>
        
</ItemGroup>
<Copy
     SourceFiles="@(SourceScripts)"
    DestinationFolder="$(ProjectDir)$(OutputPath)"     
/>

或者只是

<Copy
   SourceFiles="@(SourceScripts)"
   DestinationFolder="$(OutDir)"     
  />

随你的便


在安装此新版本之前,您应该首先删除
C:\Users\xxx(当前用户)\.nuget\packages

下的nuget缓存。哇,这是一个多么好的答案!我会尽快测试并尽快回复你!谢谢如果我想将xml文件复制到输出目录(bin/Bebug、bin/Release等),我该怎么做?现在我有DestinationFolder=“$(ProjectDir)$(Configuration)”,但xml文件既没有显示在bin/Debug中,也没有显示在bin/Release中。它实际上并没有显示在任何地方。最后一件事,我可以不使用$(OutDir)来代替吗?当然可以。这和你想要的效果一样。我已经更新了我的答案,你可以查看:)嗨,丹尼尔,有关于这个问题的更新吗?