2017-06-25 37 views
3

我試圖用生產版本取代web.config。取代web.config在asp.net核心與2017年發佈

我的產品版本爲~\production\web.config(tilda作爲我的項目文件夾的根目錄)。

我發現這個遷移文檔中

<ItemGroup> 

    <Content Include="Views\**\*" PackagePath="%(Identity)" /> 

    <None Include="notes.txt" CopyToOutputDirectory="Always" /> 
    <!-- CopyToOutputDirectory = { Always, PreserveNewest, Never } --> 

    <None Include="publishnotes.txt" CopyToPublishDirectory="Always" /> 
    <!-- CopyToPublishDirectory = { Always, PreserveNewest, Never } --> 
</ItemGroup> 

我試圖用這樣的

<ItemGroup> 
    <None Include="_production\web.config" CopyToPublishDirectory="Always" /> 
</ItemGroup> 

但這種方式的文件夾和文件都將複製到發佈目錄。它是映射和發佈的結合,不幸的是文檔因缺乏示例而受到影響,所以我試圖通過將映射示例與發佈相結合來猜測/找出它。

首先我想這:

<None Include="_production\web.config" CopyToPublishDirectory="Always" PackagePath="in/web.test"/> 

所以我期待看到在發佈目錄中的文件夾in但沒有。

我試圖

<None Include="_production\web.config" CopyToPublishDirectory="Always" PublishPath="in/web.test"/> 

,但沒有工作過。

你可以找到遷移文件here

回答

2

不知道這是最正確的方式,但你可以做到這一點使用Copy直接任務:

<Target Name="CustomScript" AfterTargets="GeneratePublishRuntimeConfigurationFile"> 
    <Copy SourceFiles="_production\web.config" 
      DestinationFolder="$(PublishDir)" 
      OverwriteReadOnlyFiles="true" 
      SkipUnchangedFiles="false" /> 
</Target> 
  • AfterTargets="GeneratePublishRuntimeConfigurationFile",因爲我們想要做的只有在發佈文件夾
  • OverwriteReadOnlyFiles="true"將生成默認web.config - 沒有這個web.config cannnot被替換
+0

感謝它的作品,但它也複製'_production'文件夾 –

+0

我發現問題是文件設置爲內​​容。我右鍵單擊並將其設置爲無,因此您的解決方案完美無缺 –

相關問題