c# - Visual Studio 错误地将 wwwroot 打包到 NuGet 包中

标签 c# nuget .net-core visual-studio-2017

我目前正在从格式为 project.json*.xproj 升级到 *.csproj 文件格式,利用较新的Visual Studio 2017 工具。以下是我为 IDE 和 SDK/.NET Core CLI 使用的版本:

Visual Studio 版本

Microsoft Visual Studio Community 2017 
Version 15.4.3
VisualStudio.15.Release/15.4.3+27004.2008
Microsoft .NET Framework
Version 4.7.02558

SDK/.NET Core CLI

.NET Command Line Tools (2.0.2)

Product Information:
 Version:            2.0.2
 Commit SHA-1 hash:  a04b4bf512

Runtime Environment:
 OS Name:     Windows
 OS Version:  6.3.9600
 OS Platform: Windows
 RID:         win81-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.0.2\

Microsoft .NET Core Shared Framework Host

  Version  : 2.0.0
  Build    : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d

话虽如此,我很好奇如何从不依赖 .nuspec 创建的 NuGet 包中排除 wwwroot。这可能吗?

.csproj

这是我的.csproj:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>        
    <!-- omitted for brevity -->
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="wwwroot\**\*;node_modules" />
    <EmbeddedResource Include="Views\**" Exclude="bin\**;obj\**;**\*.xproj;packages\**;@(EmbeddedResource)" />
    <None Update="NLog.config">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <PackagePath>lib/net461/</PackagePath>
      <Pack>true</Pack>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
    <None Update="wwwroot\**\*">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
  </ItemGroup>

  <ItemGroup>
    <!-- package references, omitted for brevity -->
  </ItemGroup>

</Project>

包内容

这是包装内容的图片:

enter image description here

理想情况下,我希望内容类似于排除 contentcontentFiles 位,而只是包含 lib。 exe.

最佳答案

您可以修改项目文件中的内容项,以将 wwwroot 文件夹或所有内容项的 Pack 元数据设置为 false:

<ItemGroup>
  <!-- only exclude wwwroot items from package -->
  <Content Update="wwwroot/**" Pack="false" />

  <!-- Exclude all content from package (e.g. appsettings.json) -->
  <Content Update="@(Content)" Pack="false" />
</ItemGroup>

关于c# - Visual Studio 错误地将 wwwroot 打包到 NuGet 包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47538212/

相关文章:

为索引 0 插入优化的 C# 集合?

f# - 如何通过 NuGet 分发 F# 类型提供程序?

.net - 如何正确构建 netstandard1.0 NuGet 包的依赖关系?

asp.net - Ninject 程序集与引用的程序集不匹配

.net-core - ConfidentialClientApplication 和 PublicClientApplication 有什么区别?

c# - 使用 ImageButton 打开 URL

c# - 无法定位特定 div 以填充来自 jQuery AJAX ASP.NET 的数据

sql-server - EF Core 强制刷新数据库中的实体(强制从数据库获取值)

c# - 如何使用 Windows Phone 8 从 OBD-II 适配器读取/写入数据?

Azure Active Directory - 更新用户 - 目标实体集当前不支持该请求