gpt4 book ai didi

visual-studio-2010 - 如何使用新的 VS 2010 配置转换并将它们应用到其他 .config 文件?

转载 作者:行者123 更新时间:2023-12-04 03:05:50 25 4
gpt4 key购买 nike

我已经在我的 web.config 中为我的 connectionStrings 等设置了一些配置转换。但是我已经将我的 web.config 的某些区域分离到单独的文件中,例如)appSettings.config。

如何配置 Visual Studio 和 MSBuild 以对这些附加配置文件执行配置转换?

我已经按照 web.config 的方法将我的 Web 应用程序项目文件中的文件关联在一起,但不会自动应用转换。

<ItemGroup>
<Content Include="appSettings.Debug.config">
<DependentUpon>appSettings.config</DependentUpon>
</Content>
</ItemGroup>

最佳答案

默认情况下,管理转换的目标 ( TransformWebConfig ) 仅适用于 web.config文件。

让它在您的 appSettings.config 上工作文件你必须:

  • 设置 Build Action将您的文件发送至 Content
  • 调用 MSBuild 目标 TransformWebConfigProjectConfigFileName=appSettings.configConfiguration=$(Configuration) .


  • 调用 MSBuild TransformWebConfig appSettings.config 的目标刚刚改造后的 web.config文件,您需要在项目文件的末尾添加:
    <PropertyGroup>
    <!-- Name of your custom config file -->
    <ConfigFileName>appSettings.config</ConfigFileName>
    </PropertyGroup>

    <PropertyGroup>
    <!--
    This property is used to handle circular dependency between
    TransformWebConfig and our custom target TransformAppConfig
    -->
    <FirstRun Condition="$(FirstRun) == ''">true</FirstRun>
    </PropertyGroup>

    <!-- This target will be called one time after a call to TransformWebConfig -->
    <Target Name="TransformAppConfig"
    AfterTargets="TransformWebConfig"
    Condition="$(FirstRun) == 'true'">

    <MSBuild Projects="$(MSBuildProjectFile)"
    Targets="TransformWebConfig"
    Properties="ProjectConfigFileName=$(ConfigFileName);
    Configuration=$(Configuration);
    FirstRun=false"/>
    </Target>

    <!--
    This target will be called one time before PreAutoParameterizationWebConfigConnectionStrings
    to add $(ConfigFileName) to autoparameterization step
    -->
    <Target Name="AddToAutoParameterizationStep"
    BeforeTargets="PreAutoParameterizationWebConfigConnectionStrings">
    <ItemGroup>
    <_WebConfigsToAutoParmeterizeCS Include="@(FilesForPackagingFromProject)"
    Condition="('%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ConfigFileName)') And !%(FilesForPackagingFromProject.Exclude)">
    <TransformOriginalFile>$(AutoParameterizationWebConfigConnectionStringsLocation)\original\%(DestinationRelativePath)</TransformOriginalFile>
    <TransformOutputFile>$(AutoParameterizationWebConfigConnectionStringsLocation)\transformed\%(DestinationRelativePath)</TransformOutputFile>
    <TransformScope>$(_PackageTempDir)\%(DestinationRelativePath)</TransformScope>
    </_WebConfigsToAutoParmeterizeCS>
    <_WebConfigsToAutoParmeterizeCSOuputFiles Include="@(_WebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)')">
    </_WebConfigsToAutoParmeterizeCSOuputFiles>
    </ItemGroup>
    </Target>

    关于visual-studio-2010 - 如何使用新的 VS 2010 配置转换并将它们应用到其他 .config 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811556/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com