如何通过 Nuget 将特定文件夹从 Razor Class 库复制到目标位置?

How to copy specific folder from a Razor Class Library to the destination via Nuget?

我在 .NET 5.0 中创建了一个 Razor class 库项目

我想制作一个 NuGet 包,其中包含 Areas 文件夹

因此,无论何时安装此软件包,目标中的整个文件夹及其所有文件都将以相同的名称进行复制。

如何通过dotnet pack命令打包整个Areas文件夹?

试试这个:

1)在项目文件夹的build文件夹下创建一个<packages_id>.props文件。在你这边,它应该被命名为 RazorClassLibrary1.props 这样文件才能工作。参见 this link

如果您的 nuget 包名为 RazorClassLibrary1.1.0.0.nupkg,则文件应为 RazorClassLibrary1.props 并保持与包 ID 相同的名称。

2)RazorClassLibrary1.props 下添加这些:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   
        
    <Target Name="CopyFiles" BeforeTargets="Build">
        <ItemGroup>
            <File Include="$(MSBuildThisFileDirectory)..\Areas\**\*.*"></File>
        </ItemGroup>
        
        <Exec Command="xcopy /I/e/d/s/y %(File.Identity) $(ProjectDir)Areas\"></Exec>
            
    </Target>

</Project>

3)RazorClassLibrary1.csproj 文件中添加这些:

<ItemGroup>

        <None Include="Areas\**\*.*" Pack="true" PackagePath="Areas"></None>
        <None Include="build\RazorClassLibrary1.props" Pack="true" PackagePath="build"></None>

</ItemGroup>

还有,当你安装这个新版本的nuget包时,请clean your nuget caches或者删除C:\Users\xxx(current user)\.nuget\packages.

下的所有文件

除了,还有.