我在 .NET 5.0 中创建了一个 Razor 类库项目,如下所示
我想用里面NuGet
的文件夹制作一个包Areas
因此,每当安装此软件包时,将使用相同的名称复制目标中包含其所有文件的整个文件夹。
如何Areas
通过dotnet pack
命令打包整个文件夹?
我在 .NET 5.0 中创建了一个 Razor 类库项目,如下所示
我想用里面NuGet
的文件夹制作一个包Areas
因此,每当安装此软件包时,将使用相同的名称复制目标中包含其所有文件的整个文件夹。
如何Areas
通过dotnet pack
命令打包整个文件夹?
尝试这个:
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
.
此外,这里还有一个类似的问题。