"/ unsafe로 컴파일 할 때만 안전하지 않은 코드가 나타날 수 있습니다"라는 오류가 발생하는 이유는 무엇입니까?


140

다음과 같은 오류가 발생하는 이유는 무엇입니까?

안전하지 않은 코드는 / unsafe로 컴파일 할 때만 나타날 수 있습니다 "?

C # 및 Visual Studio 2008에서 Windows CE 프로그래밍을 위해 일하고 있습니다.



답변:


274

안전하지 않은 코드 블록을 사용하려면 / unsafe 스위치를 켠 상태에서 프로젝트를 컴파일해야합니다.

프로젝트의 속성을 열고 Build탭으로 이동 하여 Allow unsafe code확인란을 선택하십시오.


4
빌드를 컴파일 할 수는 있지만 여전히 웹에 게시 할 수는 없습니다
Nick

5
@Nick : 예, 동적으로 컴파일 할 코드를 게시하면 프로젝트 설정이 적용되지 않습니다. 참조 stackoverflow.com/questions/16567197/...
Guffa

9
디버그 및 릴리스 컴파일간에 설정이 다를 수 있습니다. 이것은 단지 내 인생의 20 분을 요했다.
LosManos

간단한 빠른 솔루션 ..
Kalher

131

스크린 샷은 다음과 같습니다.

안전하지 않은 스크린 샷

ََََََََ


8
중요 :이 스크린 샷은 "구성 : 활성 (디버그)"용이라는 점에 유의하십시오. "출시"에 대해 변경해야 할 수도 있습니다. 게시 할 가능성이 높기 때문입니다.
Doug S

4

안전하지 않은 코드를 사용하고 있기 때문일 수 있습니다.

포인터 또는 관리되지 않는 어셈블리로 어딘가에 있습니까?


4

unsafe블록이나 문장에 대한 코드를 검색하십시오 . 이것 만 유효한 것으로 컴파일됩니다 /unsafe.


3

안전하지 않은 코드 블록을 사용하려면 프로젝트의 속성을 열고 빌드 탭으로 이동하여 안전하지 않은 코드 허용 확인란을 선택한 다음 컴파일하고 실행하십시오.

class myclass
{
     public static void Main(string[] args)
     {
         unsafe
         {
             int iData = 10;
             int* pData = &iData;
             Console.WriteLine("Data is " + iData);
             Console.WriteLine("Address is " + (int)pData);
         }
     }
}

산출:

Data is 10
Address is 1831848

3

Rider를 사용하는 모든 사용자는 프로젝트> 오른쪽 클릭> 속성> 구성을 선택한 다음 디버그 및 릴리스를 선택하고 "안전하지 않은 코드 허용"을 선택해야 합니다 .스크린 샷

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.