为啥我会收到错误“不安全代码可能仅在使用 /unsafe 编译时出现”?

Posted

技术标签:

【中文标题】为啥我会收到错误“不安全代码可能仅在使用 /unsafe 编译时出现”?【英文标题】:Why do I get the error "Unsafe code may only appear if compiling with /unsafe"?为什么我会收到错误“不安全代码可能仅在使用 /unsafe 编译时出现”? 【发布时间】:2011-01-02 20:11:39 【问题描述】:

为什么会出现以下错误?

只有在使用 /unsafe 编译时才会出现不安全代码?

我使用 C# 和 Visual Studio 2008 在 Windows CE 上进行编程。

【问题讨论】:

见msdn.microsoft.com/en-us/library/ezb5hwx9%28VS.80%29.aspx和msdn.microsoft.com/en-us/library/t2yzs44b%28VS.80%29.aspx I can seem to get msbuild to build unsafe code blocks的可能重复 【参考方案1】:

要使用不安全的代码块,必须在打开 /unsafe 开关的情况下编译项目。

打开项目的属性,转到Build 选项卡并选中Allow unsafe code 复选框。

【讨论】:

我必须说,即使这确实使构建能够编译,它仍然不允许它发布到网络:/ @Nick:是的,如果您发布要动态编译的代码,则项目设置不适用。见***.com/questions/16567197/… 请注意,调试和发布编译的设置可能不同。这只是花费了我 20 分钟的生命。 简单快速的解决方案..太棒了。 对于不同类型的构建,您可能需要将构建配置从调试更改为发布【参考方案2】:

这是截图:

ََََََََ

【讨论】:

重要提示:另外请注意,此屏幕截图适用于“配置:活动(调试)”。您可能还需要将其更改为“发布”,因为这很可能是您要发布的内容。【参考方案3】:

可能是因为您使用了不安全的代码。

您是否在某处使用指针或非托管程序集?

【讨论】:

【参考方案4】:

在您的代码中搜索unsafe 块或语句。这些仅在使用/unsafe 编译时有效。

【讨论】:

【参考方案5】:

要使用不安全的代码块,请打开项目的属性,转到构建选项卡并选中允许不安全的代码复选框,然后编译并运行。

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

【讨论】:

【参考方案6】:

对于使用 Rider 的每个人,您必须选择您的项目>右键单击>属性>配置,然后选择调试和发布并选中 both 的“允许不安全代码”。

【讨论】:

以上是关于为啥我会收到错误“不安全代码可能仅在使用 /unsafe 编译时出现”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我会收到错误数量的参数错误?

为啥我会收到错误消息?

为啥我会收到 Laravel Composer 解析错误?

为啥我会收到错误错误 C2664:'reverseString'

为啥我会收到错误的文件描述符错误?

我不知道为啥我会收到分段错误错误