【问题标题】:How to copy specific folder from a Razor Class Library to the destination via Nuget?如何通过 Nuget 将特定文件夹从 Razor 类库复制到目的地?
【发布时间】:2020-12-23 17:31:19
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# nuget visual-studio-2019 nuget-package razor-class-library


    【解决方案1】:

    试试这个:

    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下的所有文件。

    另外,这里是a similar issue

    【讨论】:

    • 任何线索如何制作这个副本 .cshtml 文件呢?出于某种原因,它只为我复制了 .cshtml.cs 文件。
    猜你喜欢
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多