ASP.NET Core发布排除文件夹(或.json文件)

时间:2018-11-15 00:37:45

标签: angular asp.net-core publish asp.net-core-2.1 webdeploy

我有一个asp core 2.1项目,我正在尝试通过Web部署发布。

我有一个名为“ Angular”的文件夹,并且在其中是我的源文件(包括一些用于angular的配置的.json文件)-将这些文件(通过单独的过程“ ng build”)构建到wwwroot / app目录中,以备发布。因此,我不希望这个Angular目录中的内容全部显示在已发布的文件夹中。但是我仍然希望Angular文件夹显示在项目/解决方案资源管理器中/在文件中查找。

目前,它正在发布Angular文件夹,其中包含所有.json文件。显然,这很糟糕,我需要阻止这种情况的发生。我很确定这是因为... https://github.com/aspnet/websdk/blob/dev/src/ProjectSystem/Microsoft.NET.Sdk.Web.ProjectSystem.Targets/netstandard1.0/Microsoft.NET.Sdk.Web.ProjectSystem.props#L32

我正在使用以下命令进行发布:

dotnet publish C:\blah\ -c Release /p:PublishProfile=WebDeployProfile

(有时也使用相同的配置文件通过Visual Studio Publish进行操作,但频率较低-我注意到这些功能的功能有所不同,我觉得很奇怪)

在.csproj和.pubxml中,我尝试了许多不同的操作,这变得荒谬了,我目前认为msbuild / deploy完全是一团糟,而且非常糟糕。

我希望有人可以帮助我完成一件非常简单容易的事情-从发布中排除文件夹(而将其保留在项目中)。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

我有一个文件夹,其中包含多个json文件,这些文件在发布过程中被拾取并发送到发布输出。

要排除诸如“ FolderYouDontWant”之类的文件夹,请将以下内容添加到您的.csproj文件中:

<ItemGroup>
    <Content Update="FolderYouDontWant\**\*.*" CopyToPublishDirectory="Never" />
</ItemGroup>

如果要查找要排除的特定文件而不是整个文件夹,请使用确切的文件路径,例如:

<ItemGroup>
    <Content Update="FolderWithFile\dont-want.json" CopyToPublishDirectory="Never" />
</ItemGroup>

如果您有多个路径,则可以将所有Content元素添加到同一 ItemGroup

答案 1 :(得分:0)

  <ItemGroup>
    <Content Update="appsettings*.json" CopyToPublishDirectory="Never" /> 
  </ItemGroup>