sdk 스타일 csproj 파일의 GenerateManifests 관련 문제
3621 단어 dotnetprogramming
app.manifest
파일을 만든 다음 지원하려는 Windows 버전의 주석을 제거해야 합니다.<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of the Windows versions that this application has been tested on
and is designed to work with. Uncomment the appropriate elements
and Windows will automatically select the most compatible environment. -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
이렇게 하면 Visual Studio에서 프로젝트(
.csproj
) 파일에 다음 속성을 자동으로 추가합니다.<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
이제 올바른 버전 번호를 얻을 수 있습니다.
var version = Environment.OSVersion.Version;
// Before: 6.2.9200.0
// After: 10.0.19044.0
문제
프로젝트를 새로운 sdk 스타일 프로젝트 파일로 마이그레이션하는 동안 OS 버전 번호가 올바르지 않은 것을 발견했습니다.
net48
TFM(Target Framework)을 유지하고 있었기 때문에 문제가 되지 않았습니다.문제는 매니페스트 파일이 존재하지 않는 경우와 같습니다.
증상
이것은 Visual Studio에서
Build > Publish
메뉴를 사용하여 프로젝트를 게시할 때만 발생했습니다. 그렇지 않으면 모든 것이 잘되었습니다.try-convert
도구를 사용하여 프로젝트를 마이그레이션했습니다. More Infotry-convert --keep-current-tfms --no-backup
수정
몇 시간 동안 디버깅한 후 내
GenerateManifests
파일의 .csproj
태그가 문제를 일으키는 것을 발견했습니다.<GenerateManifests>true</GenerateManifests>
왜 이런 일이 발생했는지 정확히 모르겠지만 문제가 해결되어 기쁩니다.
이유를 아시는 분은 댓글로 알려주세요.
Reference
이 문제에 관하여(sdk 스타일 csproj 파일의 GenerateManifests 관련 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/peyman/issues-with-generatemanifests-in-sdk-style-csproj-file-5bmd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)