【问题标题】:Strange behaviour with Microsoft.WindowsCE.FormsMicrosoft.WindowsCE.Forms 的奇怪行为
【发布时间】:2010-11-03 06:10:27
【问题描述】:

我有一个 Windows Mobile 应用程序,我想在其中检查设备方向。 因此,我以我的一种形式写了以下属性:

internal static Microsoft.WindowsCE.Forms.ScreenOrientation DeviceOriginalOrientation { get; private set; }

奇怪的是,此后每当我打开 UserControl 时,即使该 UserControl 不使用该属性,设计器也会显示此警告:

无法加载文件或程序集 'Microsoft.WindowsCE.Forms, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

评论上述属性将解除警告并再次显示用户控件。 应用程序已成功构建,并且在两种情况下都可以正常运行。

有人知道为什么会发生这种情况,我该如何解决?

【问题讨论】:

  • 如果删除静态关键字会发生什么?
  • 设计器显示错误信息。
  • 您是否在应用程序中引用了该特定版本 (3.5.0.0)?版本号可能与您在参考中分配的版本与设计人员实际可以找到的版本不匹配。
  • 使用 Input 控件时自动添加的引用。但我也尝试将其直接引用到“Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE”

标签: c# visual-studio-2008 compact-framework


【解决方案1】:

例如,如果您将 Microsoft.WindowsCE.Forms.dll 复制到项目中的子文件夹,然后将以下内容添加到项目的预构建事件中,则它也可以正常工作。重新安装你的电脑:

"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /i "$(ProjectDir)SubFolder\Microsoft.WindowsCE.Forms.dll"

【讨论】:

    【解决方案2】:

    这个问题花了我几个小时。我通过使用 gacutil 将 Microsoft.WindowsCE.Forms.dll 添加到 GAC 来解决它。希望能帮助到你。 罗宾

    【讨论】:

      【解决方案3】:

      是的,这是意料之中的。因为它是一个静态属性(我首先不同意),所以设计者必须对其进行初始化,这意味着加载 Microsoft.WindowsCE.Forms,这意味着加载特定于设备的入口点。诚然,错误消息很糟糕,但是设计人员对设备内容的支持有lots of fun issues,这很难确定原因。

      我会尝试将其移至另一个类或用检查包装它以查看您是否在设计器中。这样的事情对我们有用:

      protected bool IsDesignTime
      {
          get
          {
              // Determine if this instance is running against .NET Framework 
              // by using the MSCoreLib PublicKeyToken
              System.Reflection.Assembly mscorlibAssembly = typeof(int).Assembly;
              if ((mscorlibAssembly != null))
              {
                  if (mscorlibAssembly.FullName.ToUpper().EndsWith("B77A5C561934E089"))
                  {
                      return true;
                  }
              }
              return false;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-08
        • 2015-07-20
        • 2010-10-03
        • 2021-07-12
        • 2013-10-04
        • 2019-01-23
        相关资源
        最近更新 更多