bestsource

디버깅에 Visual Studio web.config 변환 사용

bestsource 2023. 4. 29. 09:33
반응형

디버깅에 Visual Studio web.config 변환 사용

중복 가능성:
내장된 비주얼 스튜디오 디버거 서버에서 Web.debug.config를 사용하려면 어떻게 해야 합니까?

게시에 문제가 없는 Web.config 변환을 디버깅에도 사용하고 싶습니다.

앱을 는 자동으로 Visual Studio를 합니다.Web.config현재 빌드 구성을 기반으로 합니다.디버깅을 시작할 때 Visual Studio에 동일한 작업을 수행하도록 지시하려면 어떻게 해야 합니까?인 " " " " " 를 합니다.Web.config무변태의

무슨 생각 있어요?

좋아요, 이해한다면요.web.debug.config&web.release.config패키지/배송 전용입니다.저는 당신이 하려는 일을 가능하게 하는 방법을 생각해냈습니다.저는 그것에 대해 https://devblogs.microsoft.com/aspnet/asp-net-web-projects-web-debug-config-web-release-config/ 에 블로그를 했습니다.여기 요약이 있습니다.

이제 질문자가 원하는 것을 어떻게 활성화할 수 있는지 살펴보겠습니다.

때, 을 약하자면기, 특구을구축때할특변적정환원에 적용하기를 원합니다.web.config그래서 분명히 당신은 유지하기를 원하지 않습니다.web.config덮어쓰게 되므로 파일입니다.

그래서 우리가 해야 할 일은 새로운 파일을 만드는 것입니다.web.template.config그것은 단지 의 복사본입니다.web.config그러면 그냥 삭제합니다.web.config프로젝트에서 Visual Studio를 삭제하지 않으려면 Visual Studio를 사용하여 삭제하지 마십시오.

참고: Visual Studio에 통합된 소스 제어 공급자를 사용하는 경우 소스 제어에서 web.config를 삭제할 수 있습니다.

또한 이것과 함께 우리는 사용하고 싶지 않습니다.web.debug.config또는web.release.config웹 퍼블리싱 파이프라인에서 이미 잘 정의된 역할을 가지고 있기 때문에 이를 방해하고 싶지 않습니다.에 두 입니다.web.template.config,web.dev.debug.config그리고.web.dev.release.config.

이러한 변환은 Visual Studio에서 응용 프로그램을 디버깅하거나 실행할 때 적용되는 변환입니다.이제 이 모든 것을 연결하려면 빌드/패키지/게시 프로세스에 연결해야 합니다.WAP Projects한 폴더에 WAP(Web Application )라는 할 수 .{ProjectName}.wpp.targets{ProjectName}프로젝트 이름입니다.이 파일이 WAP와 동일한 폴더의 디스크에 있으면 프로젝트 파일로 자동으로 가져옵니다.그래서 이 파일을 만들었습니다.그리고 다음과 같은 내용을 넣었습니다.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <!-- Make sure web.config will be there even for package/publish -->
  <Target Name="CopyWebTemplateConfig" BeforeTargets="Build">
    <Copy SourceFiles="web.template.config"
          DestinationFiles="web.config"/>
  </Target>
  
  <PropertyGroup>
    <PrepareForRunDependsOn>
      $(PrepareForRunDependsOn);
      UpdateWebConfigBeforeRun;
    </PrepareForRunDependsOn>
  </PropertyGroup>

  <!-- This target will run right before you run your app in Visual Studio -->
  <Target Name="UpdateWebConfigBeforeRun">
    <Message Text="Configuration: $(Configuration): web.dev.$(Configuration).config"/>
    <TransformXml Source="web.template.config"
              Transform="web.dev.$(Configuration).config"
              Destination="web.config" />
  </Target>

  <!-- Exclude the config template files from the created package -->
  <Target Name="ExcludeCustomConfigTransformFiles" BeforeTargets="ExcludeFilesFromPackage">
    <ItemGroup>
      <ExcludeFromPackageFiles Include="web.template.config;web.dev.*.config"/>
    </ItemGroup>
    <Message Text="ExcludeFromPackageFiles: @(ExcludeFromPackageFiles)" Importance="high"/>
  </Target>
</Project>

제가 이것을 조금 설명하겠습니다. 복사할 .web.template.configweb.configVisual Studio에서 응용 프로그램을 디버깅하지 않는 경우에도 빌드할 수 있습니다.

Visual Studio의 패키지/게시 프로세스를 지원해야 하기 때문에 이 작업이 필요합니다. 저는 ▁property▁the다.PrepareForRunDependsOn함하여를 UpdateWebConfigBeforeRun Studio에서 하는 데 됩니다.이 속성은 Visual Studio에서 관리되는 프로젝트를 실행하기 전에 실행해야 하는 대상 목록을 식별하는 데 사용됩니다.

에는 이대에서나있사습다니고용하는상▁the다있▁i니습을 사용하고 있습니다.TransformXml 변환 태스크web.template.config 올른사법을 web.dev.***.config그후 일을 됩니다. 그 후에 당신의 앱이 올바른 사용을 시작합니다.web.config빌드 구성을 기반으로 합니다. 후에 저는 또 목표가 .ExcludeCustomConfigTransformsFiles속성을 통해 패키지/게시 프로세스에 주입BeforeTargets=”ExcludeFilesFromPackage”응용프로그램을 패키지화하거나 게시할 때 이러한 파일을 포함하지 않기 때문에 필요합니다.그래서 그것이 정말로 그것의 전부입니다.

이 시나리오에 대한 패키지/게시 프로세스를 조금 더 설명합니다.패키지/게시 시web.debug.config또는web.release.config빌드 구성에 따라 계속 사용됩니다.하고 있는 파일은 궁변중파로환인은일하지입니다.web.template.config따라서 해당 파일에 있는 내용에 따라 조정해야 할 수도 있습니다.질문/댓글?

앤드류는 옳은 길을 가고 있습니다.사용자가 이 기능을 사용할 때 사용하도록 설계된 방법은 다음과 같습니다.

web.config 개발자가 로컬에서 사용해야 하는 구성 파일입니다.이상적으로 이를 표준화해야 합니다.예를 들어 DB 문자열에 localhost 등을 사용할 수 있습니다.당신은 이것이 변경 없이 개발 기계에서 작동하도록 노력해야 합니다.

web.debug.config 응용 프로그램을 개발 준비 환경에 게시할 때 적용되는 변환입니다.이렇게 하면 대상 환경에 필요한 web.config가 변경됩니다.

web.release.config 응용 프로그램을 "운영" 환경에 게시할 때 적용되는 변환입니다.응용 프로그램/팀에 따라 암호를 조심해야 합니다.

현재 실행 중인 web.config를 변환할 때 발생하는 문제는 변환이 web.config에 대해 파괴적인 작업을 수행할 수 있다는 것입니다.예를 들어 속성을 삭제하거나 요소를 삭제할 수 있습니다.

'default' web.config를 개발/디버깅 버전으로 사용하면 게시 시 변환이 적용되므로 web.release.config는 물론 계속 릴리스 버전이 됩니다.

디버그 구성에서 빌드 후 단계를 추가하고 이 단계를 사용하여 다음을 대체/변환합니다.web.config

일반적으로 가장 간단한 방법이 최선이라는 데 동의하지만, 일정 기간 동안 IDE를 개발 데이터베이스 대신 테스트 데이터베이스에 연결하려는 상황을 쉽게 상상할 수 있습니다.기본 web.config 파일에서 개발 연결 문자열을 지정할 수 있지만 웹이 있으면 정말 좋습니다.Test.config 파일을 테스트하여 빌드 구성을 "테스트"로 전환하면 IDE에 있는 동안 새 설정이 자동으로 표시됩니다.

역사적인 대안은 연결 문자열 집합을 다른 연결 문자열 집합에 대해 언급하는 것이지만, 이러한 새로운 구성 변환은 마침내 그 추악한 관행의 핵심에 지분을 둘 수 있다는 희망을 유지했습니다.개발을 위한 기본 파일 하나와 릴리스를 위한 변환이 대부분 작동할 수 있지만 web.config 파일을 변환하기 위해 빌드 후 단계를 추가하는 것이 더 완벽한 답이라고 생각합니다.

언급URL : https://stackoverflow.com/questions/3922291/use-visual-studio-web-config-transform-for-debugging

반응형