我正在尝试用生产版本替换web.config。
我在~\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
答案 0 :(得分:3)
不确定这是否是最正确的方法,但您可以直接使用Copy
任务来实现此目的:
<Target Name="CustomScript" AfterTargets="GeneratePublishRuntimeConfigurationFile">
<Copy SourceFiles="_production\web.config"
DestinationFolder="$(PublishDir)"
OverwriteReadOnlyFiles="true"
SkipUnchangedFiles="false" />
</Target>
AfterTargets="GeneratePublishRuntimeConfigurationFile"
因为我们只想在发布文件夹中生成默认web.config
后才进行替换OverwriteReadOnlyFiles="true"
- 没有web.config
无法替换