微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过 Nuget 将特定文件夹从 Razor 类库复制到目的地?

如何解决如何通过 Nuget 将特定文件夹从 Razor 类库复制到目的地?

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

enter image description here

我想制作一个包含 NuGet 文件夹的 Areas

enter image description here

这样,无论何时安装此软件包,都将使用相同名称复制整个文件夹及其目标中的所有文件

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

enter image description here

解决方法

试试这个:

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

enter image description here

并且如果您的 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下的所有文件。

此外,这里是a similar issue

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。