오류 CS8357 지정된 버전 문자열에 와일드 카드가 포함되어 있지만 결정성과 호환되지 않습니다. 버전 문자열에서 와일드카드를 삭제하거나 이 컴파일에서 결정성을 사용 중지합니다.
3040 단어 VisualStudio.NETFrameworkC#.NET
소개
Visual Studio를 버전 15.8.1 당으로 올린 다음 제목과 같은 오류가 발생하고 문제가 발생했을 때 해결책을 찾았으므로 공유합니다.
참고로 영어 오류 메시지는 "The specified version string contains wildcards, which are not compatible with determinism. Either remove wildcards from the version string, or disable determinism for this compilation"입니다.
원인
어셈블리의 버전 지정에 와일드 카드(빌드 마다 자동 번호 매기기)를 사용하고 있는 경우 발생합니다(나는 매우 편리하고 있었습니다만...)
「『결정론적』인 빌드」되는 것이 디폴트로 유효화되었기 때문이라고 하고, 「결정론적」이라고 하면 테스트 실행이 고속화되거나 하는 이점이 있거나 하는 것 같습니다. 그러나 반면 이번과 같은 영향도 나옵니다.
.NET Core를 사용하면 결정론적 빌드가 기본적으로 활성화된다는 정보도 찾을 수 있지만 .NET Framework에서 프로젝트를 생성해도 이 문제가 발생합니다. 내부에서 .NET Core를 사용하고 있습니까?
대처법
(이하 C# Windows Forms Application (.NET Framework) 프로젝트를 만들고 시도하고 있습니다)
"<프로젝트 이름>.csproj"파일을 직접 열고 요소 내에 있는 요소의 값이 true이므로 false로 다시 작성하고 저장합니다.
csproj 파일 업데이트 후 프로젝트 탐색기에 "(사용할 수 없음)"이 표시되므로 프로젝트 항목을 마우스 오른쪽 버튼으로 클릭하고 "프로젝트 다시로드"를 선택하면 정상적으로로드되고 개발 작업이 가능합니다. 됩니다.
덧붙여서, csc 또는 msbuild 컴파일 옵션에서도 결정 론적 빌드를 사용할지 여부를 지정할 수있는 것 같습니다 (Visual Studio에서 빌드 할 때 csproj 파일에서 결국 컴파일 옵션을 지정했을 것입니다)
결론
Visual Studio의 진화가 최근 현저하고 기쁜 반면, 업데이트하고 나서 알 수 없는 컴파일 에러가 되기도 합니다. 당연하지만, 납기가 가까울 때 툴류의 업데이트는 삼가하는 것이 현명하네요.
참고 정보
Auto Versioning in Visual Studio 2017 (.NET Core) --- Stack Overflow
Determinism end-user experience is poor - GitHub
픽업 Roslyn 2/10 --- ++C++; // 미확인 비행 C 씨
-deterministic (C# Compiler Options) --- Microsoft Docs
Reference
이 문제에 관하여(오류 CS8357 지정된 버전 문자열에 와일드 카드가 포함되어 있지만 결정성과 호환되지 않습니다. 버전 문자열에서 와일드카드를 삭제하거나 이 컴파일에서 결정성을 사용 중지합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/otagaisama-1/items/2d041372c1d07af4ebd2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
어셈블리의 버전 지정에 와일드 카드(빌드 마다 자동 번호 매기기)를 사용하고 있는 경우 발생합니다(나는 매우 편리하고 있었습니다만...)
「『결정론적』인 빌드」되는 것이 디폴트로 유효화되었기 때문이라고 하고, 「결정론적」이라고 하면 테스트 실행이 고속화되거나 하는 이점이 있거나 하는 것 같습니다. 그러나 반면 이번과 같은 영향도 나옵니다.
.NET Core를 사용하면 결정론적 빌드가 기본적으로 활성화된다는 정보도 찾을 수 있지만 .NET Framework에서 프로젝트를 생성해도 이 문제가 발생합니다. 내부에서 .NET Core를 사용하고 있습니까?
대처법
(이하 C# Windows Forms Application (.NET Framework) 프로젝트를 만들고 시도하고 있습니다)
"<프로젝트 이름>.csproj"파일을 직접 열고 요소 내에 있는 요소의 값이 true이므로 false로 다시 작성하고 저장합니다.
csproj 파일 업데이트 후 프로젝트 탐색기에 "(사용할 수 없음)"이 표시되므로 프로젝트 항목을 마우스 오른쪽 버튼으로 클릭하고 "프로젝트 다시로드"를 선택하면 정상적으로로드되고 개발 작업이 가능합니다. 됩니다.
덧붙여서, csc 또는 msbuild 컴파일 옵션에서도 결정 론적 빌드를 사용할지 여부를 지정할 수있는 것 같습니다 (Visual Studio에서 빌드 할 때 csproj 파일에서 결국 컴파일 옵션을 지정했을 것입니다)
결론
Visual Studio의 진화가 최근 현저하고 기쁜 반면, 업데이트하고 나서 알 수 없는 컴파일 에러가 되기도 합니다. 당연하지만, 납기가 가까울 때 툴류의 업데이트는 삼가하는 것이 현명하네요.
참고 정보
Auto Versioning in Visual Studio 2017 (.NET Core) --- Stack Overflow
Determinism end-user experience is poor - GitHub
픽업 Roslyn 2/10 --- ++C++; // 미확인 비행 C 씨
-deterministic (C# Compiler Options) --- Microsoft Docs
Reference
이 문제에 관하여(오류 CS8357 지정된 버전 문자열에 와일드 카드가 포함되어 있지만 결정성과 호환되지 않습니다. 버전 문자열에서 와일드카드를 삭제하거나 이 컴파일에서 결정성을 사용 중지합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/otagaisama-1/items/2d041372c1d07af4ebd2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
csproj 파일 업데이트 후 프로젝트 탐색기에 "(사용할 수 없음)"이 표시되므로 프로젝트 항목을 마우스 오른쪽 버튼으로 클릭하고 "프로젝트 다시로드"를 선택하면 정상적으로로드되고 개발 작업이 가능합니다. 됩니다.
덧붙여서, csc 또는 msbuild 컴파일 옵션에서도 결정 론적 빌드를 사용할지 여부를 지정할 수있는 것 같습니다 (Visual Studio에서 빌드 할 때 csproj 파일에서 결국 컴파일 옵션을 지정했을 것입니다)
결론
Visual Studio의 진화가 최근 현저하고 기쁜 반면, 업데이트하고 나서 알 수 없는 컴파일 에러가 되기도 합니다. 당연하지만, 납기가 가까울 때 툴류의 업데이트는 삼가하는 것이 현명하네요.
참고 정보
Auto Versioning in Visual Studio 2017 (.NET Core) --- Stack Overflow
Determinism end-user experience is poor - GitHub
픽업 Roslyn 2/10 --- ++C++; // 미확인 비행 C 씨
-deterministic (C# Compiler Options) --- Microsoft Docs
Reference
이 문제에 관하여(오류 CS8357 지정된 버전 문자열에 와일드 카드가 포함되어 있지만 결정성과 호환되지 않습니다. 버전 문자열에서 와일드카드를 삭제하거나 이 컴파일에서 결정성을 사용 중지합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/otagaisama-1/items/2d041372c1d07af4ebd2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)