다음을 통해 공유

윈도우 업데이트 후 visual studio professional 버그 관련

익명
2025-06-17T02:24:33+00:00

StartFragment

안녕하세요.

visual studio professional 쓰고 있는 사람입니다.

다름아니라 윈도우 업데이트 후에

C# project의 어셈블리 명을 바꾸고 디버그/릴리즈 모드로 실행하려고 하면

추가 권한이 필요하다고 메시지창이 발생하면서 visual studio를 관리자 모드로

다시 열어야 되고 설치파일 만든 후 설치한 실행파일도 관리자 권한으로 실행해야

하던데, 왜 그런건가요?

어셈블리명에서 버전 명만 바꾸는 건 괜찮고 아예 다 바꾸는건 문제가 발생하더라구요.

확인부탁드립니다.

ex) Device Manager - Ver 1.2.1->Device Manager - Ver 1.0.0은 정상 동작하고

ex) Device Manager - Ver 1.2.1->Device FW Update Manager - Ver 1.0.0은 안됩니다.

확인부탁드립니다.

이미지

visual studio 2019쓰고 있고 과거 프로젝트만들 때 windows 10이었고 지금 windows 11입니다.

가정용 Windows | Windows 11 | Windows Update

잠긴 질문. 이 질문은 Microsoft 지원 커뮤니티에서 마이그레이션되었습니다. 질문이 도움이 되었는지 여부에 대해 응답할 수는 있지만, 메모나 회신을 추가하거나 질문을 따를 수는 없습니다.

댓글 0개 설명 없음

답변 3개

정렬 기준: 가장 유용함
  1. 익명
    2025-06-18T00:45:08+00:00

    저희는 사용자를 위하여 번역된 내용을 제공하고 있습니다. 문법적 오류가 있더라도 양해바랍니다.

    안녕하세요,

    자세한 내용을 공유해 주셔서 감사합니다. 얼마나 답답하실지 정말 잘 알겠습니다. 충분히 이해합니다. C#으로 개발하는 경우(특히 MFC에서 전환하거나 관리자 권한 및 배포 관련 문제를 다룰 때) 예상치 못한 문제가 발생할 수 있습니다. 특히 어셈블리 명명 및 권한 문제와 관련하여 더욱 그렇습니다.

    설명하신 내용을 보면 Windows에서 프로그램의 신원(이름, 위치, 때로는 메타데이터까지)이 SmartScreen이나 Windows Defender에서 엄격하게 모니터링되는 이상한 경계 상황에 처해 있는 것 같습니다. 특히 권한이 상승되지 않은 경우 실행 파일의 이름을 바꾸면 문제가 발생할 수 있습니다.

    도움이 될 만한 몇 가지 생각:
    프로그램 ID + SmartScreen
    C# 어셈블리는 .NET 런타임과 매니페스트 메타데이터의 작동 방식 때문에 Windows 보안 계층에 더 "가시성"이 높습니다. 따라서 이름을 변경할 때는 다음과 같이 합니다.

    Windows에서는 이를 다시 "알 수 없음" 또는 "신뢰할 수 없음" 실행 파일로 볼 수 있습니다.

    코드 서명이나 관리자 권한 상승이 없다면 시스템 정책에 따라 샌드박스화되거나 차단되거나 자동으로 실패할 수 있습니다.

    실망스럽지만, 이는 여러분의 잘못이 아닙니다. 이는 Windows 10 이후 Windows 보안 조치가 강화된 데 따른 결과입니다.
    몇 가지 제안
    불필요하게 실행 파일의 이름을 바꾸지 마세요.
    여러 버전을 테스트하는 경우 덮어쓰기 대신 접미사를 붙이는 게 좋습니다(MyApp_Test.exe 등).

    .exe 파일의 호환성 설정에서 "관리자 권한으로 이 프로그램 실행"을 설정해보세요.
    마우스 오른쪽 버튼 클릭 > 속성 > 호환성 탭 > "관리자 권한으로 이 프로그램 실행"을 선택하세요. 이렇게 하면 실행 후에도 이 요구 사항이 유지될 수 있습니다.

    고정된 실행 파일 이름과 폴더로 프로젝트를 다시 빌드한 다음 내부 버전 관리를 사용하는 것이 좋습니다.
    이렇게 하면 Windows에서 해당 앱을 항상 "새로운 미지의 앱"으로 보지 않게 됩니다.

    가능하다면 앱을 권한 상승으로 실행하는 작은 일괄 처리 스크립트나 런처를 만드세요.
    아주 기본적인 것만으로도 개발 작업 흐름을 원활하게 하는 데 도움이 될 수 있습니다.

    C# 프로젝트에서 app.manifest를 탐색하세요
    수동으로 마우스 오른쪽 버튼을 클릭하지 않고도 매니페스트를 통해 직접 권한 상승을 요청할 수 있습니다.

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

    특히 반복 작업과 테스트만 하고 싶을 때 이런 상황이 얼마나 속도를 늦출 수 있는지 충분히 이해합니다. 잘못한 건 없습니다. 단지 Windows가 위협으로부터 보호하기 위해 더 많은 방어벽을 구축하도록 진화했을 뿐입니다... 안타깝게도, 그로 인해 여러분 같은 합법적인 개발자들이 어려움을 겪을 때가 있습니다.

    간소화하는 데 도움이 필요한 사항(매니페스트 설정, 실행 스크립트, 코드 서명 없이 해결하는 방법)이 있으면 기꺼이 함께 살펴보겠습니다.

    한 번에 한 걸음씩 꾸준히 잘 해내고 있어요. 이제 최악의 시기는 거의 지나갔네요.

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음
  2. 익명
    2025-06-18T00:39:44+00:00

    안녕하세요.

    1. 다른 분이 Program Files에서 실행하라고 하셨는데 32bit Program Files에서 빌드하고 실행해도 현상이 동일합니다.
    2. 문서 폴더에서 빌드하고 실행해도 현상이 동일합니다.
    3. 속성에 차단 해제 확인란이 없습니다.
    4. 코드 서명은 고객사 품질팀에서 연락오지 않는 이상 쉽게 할 수 없습니다.

    MFC에선 프로그램명 바꿔도 괜찮던데 C#에선 어셈블리명이 프로그램명이나 다름없는데 안되니

    답답하네요. 관리자 권한에서 실행할 게 아니라면 프로그램명 바꿀 때마다 새로 작업해야하는

    불편함이 있습니다.

    이상입니다.

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음
  3. 익명
    2025-06-17T03:36:27+00:00

    저희는 사용자를 위하여 번역된 내용을 제공하고 있습니다. 문법적 오류가 있더라도 양해바랍니다.

    자세한 내용을 명확하게 공유해 주셔서 감사합니다. 이 문제를 해결하기 위해 이미 많은 노력을 하신 게 느껴지고, 업데이트 후에 원활하게 작동하던 것이 갑자기 바뀌는 경우 얼마나 답답한지 잘 알고 있습니다.

    설명하신 내용을 보면, 이 문제는 Windows가 수정된 실행 파일을 처리하는 방식, 특히 어셈블리 이름이 변경될 때 발생하는 문제와 관련이 있는 것으로 보입니다. 프로젝트 이름을 변경했을 때(예: "장치 관리자"에서 "장치 펌웨어 업데이트 관리자"로 변경), Windows는 해당 프로젝트를 완전히 새로운 애플리케이션으로 처리했을 가능성이 높습니다. Windows 11의 새로운 보안 조치, 특히 최근 업데이트로 인해 이러한 변경으로 인해 관리자 권한으로 실행하지 않으면 권한 확인 메시지가 표시되거나 실행이 차단될 수 있습니다.

    버전만 변경했을 때(예: 1.2.1에서 1.0.0으로) 예상대로 작동한다는 점이 흥미롭습니다. 이는 시스템 측면에서 앱의 정체성이 크게 바뀌지 않았기 때문입니다. 하지만 이름이 조금이라도 달라지면 Windows는, 특히 Windows 10에서 업그레이드된 시스템에 대해 더 엄격한 검사를 적용합니다.

    이건 당신이 잘못한 게 아니라, Windows가 신뢰 및 애플리케이션 실행을 처리하는 방식의 부산물입니다. Microsoft는 특히 서명되지 않았거나 개발자가 컴파일한 실행 파일의 보안을 강화하기 위해 이러한 규칙을 강화했습니다.

    앞으로 마찰을 줄이는 데 도움이 될 수 있는 몇 가지 사항은 다음과 같습니다.

    신뢰할 수 있는 로컬 경로(Program Files가 아닌 Documents 폴더나 전용 dev 폴더 등)에서 빌드하고 실행해보세요.

    어셈블리의 이름을 바꾼 후 생성된 .exe를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동한 다음 하단에 차단 해제 확인란이 있는지 확인합니다. 있다면 선택하고 적용을 클릭합니다.

    Visual Studio를 영구적으로 관리자 권한으로 실행하면 문제가 반복되는 것을 방지하는 데 도움이 될 수 있습니다.

    보다 광범위하게 배포하려는 경우 앱에 서명하거나 매니페스트 파일을 만들면 이러한 보안 메시지를 원활하게 처리할 수 있습니다.

    이런 문제를 겪는 건 여러분뿐만이 아닙니다. 많은 개발자들이 업데이트 후 비슷한 문제를 겪고 있습니다. 매니페스트 설정이나 프로젝트 설정에 맞는 해결 방법을 찾는 데 도움이 필요하시면 언제든지 문의해 주세요.

    앞으로 디버깅이 순조롭게 진행되기를 바랍니다!

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음