디버깅에 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.config
web.config
Visual 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
'bestsource' 카테고리의 다른 글
이클립스에서 선택한 리소스에서 Windows 탐색기를 여는 방법 (0) | 2023.04.29 |
---|---|
@Html.HiddenFor는 ASP의 목록에서 작동하지 않습니다.NET MVC (0) | 2023.04.29 |
찾기: -exec 인수 누락 (0) | 2023.04.29 |
Bash 스크립트 내에서 문자열을 명령으로 실행 (0) | 2023.04.29 |
IDE를 사용할 때 Powershell에서 타사 실행 파일을 호출할 때 오류 발생 (0) | 2023.04.29 |