0

我在 .NET 5.0 中创建了一个 Razor 类库项目,如下所示

在此处输入图像描述

我想用里面NuGet的文件夹制作一个包Areas

在此处输入图像描述

因此,每当安装此软件包时,将使用相同的名称复制目标中包含其所有文件的整个文件夹。

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

在此处输入图像描述

4

1 回答 1

1

尝试这个:

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

在此处输入图像描述

如果您的 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 包时,请清理您的 nuget 缓存或删除C:\Users\xxx(current user)\.nuget\packages.

此外,这里还有一个类似的问题

于 2020-12-23T05:57:47.143 回答