【问题标题】: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 上进行编程。

【问题讨论】:

标签: c# visual-studio-2008 windows-ce unsafe


【解决方案1】:

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

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

【讨论】:

  • 我必须说,即使这确实使构建能够编译,它仍然不允许它发布到网络:/
  • @Nick:是的,如果您发布要动态编译的代码,则项目设置不适用。见stackoverflow.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 的“允许不安全代码”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-13
          • 2013-08-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多