【发布时间】:2019-08-12 17:46:29
【问题描述】:
我有一个 .Net Core 2.2 库项目。这个项目包含的只是一堆静态文件,它们将“构建操作”设置为内容。
此项目的唯一目的是构建到 Nuget 包中,并且任何消费者都可以将包含的内容添加到他们的 wwwroot 文件夹中。
不幸的是,在查看解决方案资源管理器时,这些文件“看起来”就好像它们在那里一样,但它们的实际路径是:
C:\Users\MyName\.nuget\package\mylib.staticfiles\0.0.1\contentFiles\any\netcoreapp2.2\wwwroot.
在我的库中,我在 .csproj 文件中使用以下内容:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<PackageVersion>0.0.6</PackageVersion>
</PropertyGroup>
<ItemGroup>
<Content Include="wwwroot\**" />
</ItemGroup>
</Project>
很难找到有关如何执行此操作的文档。任何帮助表示赞赏。
【问题讨论】:
-
改用 Razor 类库。然后,您实际上可以将静态资源嵌入到库本身中。它们仍然不会包含在目标项目中。 (虽然这是最好的)。如果消费者想要更改或修改静态文件,他们只需在项目的同一位置创建一个具有相同名称的文件,并将其用作覆盖。您的方法的问题在于,对 NuGet 包的任何更新都会破坏项目中的任何更改,而使用 RCL,消费者仍然可以控制。
标签: asp.net-core .net-core nuget