1

내 프로젝트에 하나의 개발, 3 가지 테스트 환경, 1 가지 통합 환경 및 최종 생산 환경이있는 여러 환경이 있습니다. 우리가 appsetting.PROD.json를 게시하고,이를 통해해당 환경에만 appsettings.ENV.json 환경 게시

"publishOptions": { 
    "include": [ 
    ... 
    "appsettings.json", 
    "appsettings.*.json", 
    ... 
    ] 
} 

- this answer에서 언급 한 바와 같이

따라서, 우리는 우리가 project.json 다음 한 환경 특정 appsettings.ENVNAME.json에 대한

을 가기로 결정 다른 시험 환경에서도 그렇습니다.

나는 우리가 this-

.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); 

처럼 시작에 appSettings는 파일의 로딩을 제어 할 수 있습니다 그러나이 경우에도 다른 파일을 사용할 수 있음을 이해합니다. (실수 변화 ENV 이름으로 사람과는 다른 환경의 세부 사항을 따기 시작합니다) (우리의 감사 팀에 따라) 이제

는, 우리는 해당 환경에 appsettings.ENVNAME.json 특정 환경을 게시해야합니다.

project.json을 사용하여이를 수행하는 방법은 무엇입니까? 이것을 위해 별도의 스크립트를 작성해야합니까? 이 시나리오를 해결하는 가장 좋은 방법은 무엇입니까?

+0

_ 실수로 변경된 사람이 env 이름을 변경하면 다른 환경의 세부 사항을 시작합니다 _ 실수로 _ 실수로 appsettings.envname.json 파일을 게시하고 다른 환경의 세부 정보를 수집하기 시작합니다 _ 둘 다 동일한 유형의 수동 오류가 발생하기 쉽습니다. 귀하의 예에서 선택 사항이 아닌 환경 파일을 필수 항목으로 만들 수 있습니다. 누군가가 존재하지 않는 환경 이름으로 변경하면 오류가 발생합니다. 문제는 패키지가 환경 모드인지 결정해야하는 것이 아니라 서버를 배포하는 경우 – Tseng

+0

필수로 설정하더라도 다른 환경 파일도 내 게시 폴더에 포함됩니다. 감사 팀은이를 승인하지 않을 것입니다. 여기서는 환경 이름을 기반으로 게시 프로세스를 자동화하는 것이 목적입니다. – Vishal26

+0

그런 엄격한 감사 프로세스에 대해 이야기하고 있지만 개발자의 준비 및 제작에 직접 게시 할 수 있습니까? 이 파일을 별도의 위치에 게시 한 다음 필요한 파일을 필요한 위치에 복사하는 것이 어떻습니까? –

답변

0

보안상의 이유로 (의도적으로 또는 실수로) 저장소 또는 개발에 사용 된 컴퓨터에 준비/프로덕션 구성 파일을 포함시키지 마십시오. 이러한 파일에는 민감한 정보가 포함될 수 있으며 잘못된 구성 파일을 사용하거나 수정하면 큰 실수가 발생할 수 있습니다.

생산을위한 구성 파일이 너무 많이 변경되지 않아 필요할 때 수동으로 쉽게 수정할 수 있습니다. 결론적으로 나는 환경 당 하나만 appsettings.json을 사용합니다. 그것은 내 의견으로는 더 안전하고 실제로 쉽습니다.