【问题标题】:AppSettings.*.json files not copied on Publish in ASP.NET CORE 1.1AppSettings.*.json 文件未在 ASP.NET CORE 1.1 中发布时复制
【发布时间】:2017-05-02 18:19:57
【问题描述】:

我正在发布一个带有 .csproj 文件的 ASP.NET Core 1.1 项目...

当我发布它时,项目被编译并且所有文件,包括 wwwroot 中的文件都被复制,但是所有 appsettings.*.json 文件都丢失了。

我不知道为什么,因为我有以下情况:

<Content Include="**\*.json" />

我错过了什么?这是完整的 .csproj 文件。

<Project>

  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <PreserveCompilationContext>true</PreserveCompilationContext>
    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>      
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="**\*.cs" />   
    <Content Include="**\*.json" />
    <EmbeddedResource Include="**\*.resx" />        
  </ItemGroup>

 <ItemGroup>
    <PackageReference Include="System.Runtime" Version="4.3.0" />
    <PackageReference Include="Microsoft.NETCore.App" Version="1.1.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Web" Version="1.0.0-alpha-20161104-2-112">
      <PrivateAssets>All</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Identity" Version="1.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Tools" Version="1.1.0-preview4-final" />  
    <PackageReference Include="Microsoft.AspNetCore.ResponseCaching" Version="1.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.ResponseCompression" Version="1.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Rewrite" Version="1.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Routing" Version="1.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.0" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0-msbuild1-final" /> 
  </ItemGroup>  

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

  <Target Name="Prepublish" BeforeTargets="PrepareForPublish" Condition=" '$(IsCrossTargetingBuild)' != 'true' ">
    <Exec Command="npm install" />
    <Exec Command="bower install" /> 
    <Exec Command="gulp build" />
  </Target>   

</Project>

【问题讨论】:

  • 有什么消息吗?我也面临同样的问题。
  • 我也对这个问题的解决方案感兴趣
  • 我遇到了同样的问题。只需将 Copy to Output Directory 更改为 Copy Always

标签: asp.net-core visual-studio-2017 asp.net-core-1.1


【解决方案1】:

我使用四个 json 文件作为 angular-translate 的翻译文件时遇到了类似的问题。我为包含它们所做的就是明确地将它们标记为内容。

<Content Include="Language\locale-en.json" />
<Content Include="Language\locale-fr.json" />
<Content Include="Language\locale-es.json" />
<Content Include="Language\locale-pt.json" />

【讨论】:

    猜你喜欢
    • 2019-03-12
    • 1970-01-01
    • 2018-09-01
    • 2017-07-17
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多