나는 여러 가지 해결책을 시도했으며 여기 내가 개인적으로 찾은 가장 간단한 것입니다.
댄은 그 의견에 지적 원래의 게시물 에 속한다 올렉 Sych - 감사, 올렉!
지침은 다음과 같습니다.
1. 각 구성에 대한 XML 파일을 프로젝트에 추가하십시오.
일반적으로 구성 Debug
및 Release
구성이 가능하므로 파일 이름 App.Debug.config
과 App.Release.config
. 내 프로젝트에서 각 종류의 환경에 대한 구성을 만들었으므로 실험 해 볼 수 있습니다.
2. 프로젝트를 언로드하고 편집을 위해 .csproj 파일을 엽니 다
Visual Studio를 사용하면 편집기에서 .csproj 파일을 바로 편집 할 수 있습니다 . 먼저 프로젝트를 언로드하면됩니다. 그런 다음 마우스 오른쪽 단추로 클릭하고 <ProjectName> .csproj 편집을 선택 하십시오 .
3. App. *. config 파일을 기본 App.config에 바인딩
모두 App.config
및 App.*.config
참조 가 포함 된 프로젝트 파일 섹션을 찾으십시오 . 빌드 작업이 다음과 None
같이 설정되어 있습니다 .
<None Include="App.config" />
<None Include="App.Debug.config" />
<None Include="App.Release.config" />
먼저 모든 빌드 작업을로 설정하십시오 Content
.
다음으로 모든 구성 관련 파일을 기본 파일에 종속되게 하여 App.config
Visual Studio가 디자이너 및 코드 숨김 파일처럼 그룹화합니다.
위의 XML을 아래의 것으로 바꾸십시오.
<Content Include="App.config" />
<Content Include="App.Debug.config" >
<DependentUpon>App.config</DependentUpon>
</Content>
<Content Include="App.Release.config" >
<DependentUpon>App.config</DependentUpon>
</Content>
4. 변형 마법 활성화 ( VS2017 이전의 Visual Studio 버전에만 필요 )
파일 끝에서
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
그리고 마지막 전에
</Project>
다음 XML을 삽입하십시오.
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="CoreCompile" Condition="exists('app.$(Configuration).config')">
<!-- Generate transformed app config in the intermediate directory -->
<TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" />
<!-- Force build process to use the transformed configuration file from now on. -->
<ItemGroup>
<AppConfigWithTargetPath Remove="app.config" />
<AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
<TargetPath>$(TargetFileName).config</TargetPath>
</AppConfigWithTargetPath>
</ItemGroup>
</Target>
이제 프로젝트를 다시로드하고 빌드하고 App.config
변형을 즐길 수 있습니다 !
참고로
App.*.config
파일이 다음과 같이 올바르게 설정되어 있는지 확인하십시오 .
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--magic transformations here-->
</configuration>