Asp.net core .Net核心Nuget包-将文件复制到包使用者wwwroot

Asp.net core .Net核心Nuget包-将文件复制到包使用者wwwroot,asp.net-core,.net-core,nuget,Asp.net Core,.net Core,Nuget,我有一个.NETCore2.2库项目。该项目包含的所有内容都是一组静态文件,其中“构建操作”设置为内容 此项目的唯一目的是将其内置到Nuget包中,并让任何消费者将包含的内容添加到他们的wwwroot文件夹中 不幸的是,在查看解决方案资源管理器时,这些文件“显示”得好像它们在那里,但它们的实际路径是: C:\Users\MyName\.nuget\package\mylib.staticfiles\0.0.1\contentFiles\any\netcoreapp2.2\wwwroot 在我的库

我有一个.NETCore2.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>

netcoreapp2.2
0.0.6

很难找到关于如何做到这一点的文档。非常感谢您的帮助。

是的,它不起作用。新方法是链接文件。以前要复制的静态内容和代码文件已复制到目标项目。但它不再受到支持。这被认为是对项目的“污染”。 有一种方法可以破解它,它不是完美的,而是有效的。检查我的答案


希望有帮助。

改用Razor类库。然后,实际上可以将静态资源嵌入库本身。它们仍然不会包含在目标项目中。(不过这是最好的选择)。如果使用者希望更改或修改静态文件,他们只需在项目中的同一位置创建一个同名文件,并将其作为覆盖。这里您的方法的问题是,对NuGet包的任何更新都会破坏项目中的任何更改,而使用RCL时,消费者仍然可以控制。