c# - Visual Studio 在 Extension VS2012 中设置 TargetFrameworkMoniker

标签 c# visual-studio xamarin.ios comexception

我尝试使用适用于 Visual Studio 2012 的 VSMonoTouch 插件在 Visual Studio 中完全构建我的跨平台解决方案。 因为这并没有得到真正的支持,而且维护者看起来并不像他会创建一个新的分支,其他一些人将它移植到了 2012 年。 看起来到处都可以工作,而不是我的安装。

首先是关于已安装内容的一些信息:

  • Win 8 64 位
  • VS 2012 高级版
  • .NET 4.5
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework 中的 v1.0 文件夹

我已经完成的是获取所有代码并使用 VS 启动扩展。我可以看到,在下面的代码中发生了这个异常: (异常发生在 line item.Value=v10FrameworkName)

代码:

public int OnAfterOpenProject(IVsHierarchy pHierarchy, int fAdded)
{
    const string targetFrameworkMoniker = "TargetFrameworkMoniker";

    object projectObj;
    pHierarchy.GetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_ExtObject, out projectObj);
    var project = (Project) projectObj;

    if (VSMonoTouchPackage.IsMonoTouchProject(project))
    {
       var v10FrameworkName = (new FrameworkName(".NETFramework", new Version(1, 0))).FullName;
       var item = project.Properties.Item(targetFrameworkMoniker);
       if (item != null)
       {
          if (item.Value == null || (string) item.Value != v10FrameworkName)
          {
              // Here is where the Exception occures
              item.Value = v10FrameworkName;
          }
       }
       else
       {
           project.Properties.Item(targetFrameworkMoniker).Value = v10FrameworkName;
       }
   }
   return VSConstants.S_OK;
}

异常(exception):

HRESULT: -2147352567

异常信息:

Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))

异常堆栈跟踪:

at EnvDTE.Property.set_Value(Object lppvReturn) at Follesoe.VSMonoTouch.SolutionEvents.OnAfterOpenProject(IVsHierarchy pHierarchy, Int32 fAdded) in c:\Projects\VSMonoTouch\VSMonoTouch\VSMonoTouchPackage.cs:line 170

真正奇怪的是,当我打开一个 csproj-MonoTuch-Project 时,该项目一直在加载/卸载 - 加载/卸载 - ... 直到 VS 崩溃。 也不异常(exception)。 打开包含 MonoTouch 项目的现有解决方案时,出现上述异常。 (例如打开 MvvmCross-vNExt-Solution)

似乎工作正常的是我的 v1.0 .NETFramework 文件夹,因为我可以在项目属性中将控制台应用程序切换到此目标框架。 当我简单地取消注释崩溃代码时,VS 将加载项目,但似乎处于连线状态。我无法更改目标框架(项目属性中根本没有选择)

任何可能触发此异常的小想法将不胜感激。

最佳答案

好的,我已经通过全新安装 VS 解决了这个问题。看来我的旧版本中有一些损坏..

关于c# - Visual Studio 在 Extension VS2012 中设置 TargetFrameworkMoniker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14352850/

相关文章:

javascript - 检测浏览器和版本 - 没有 Modernizr

c++ - 如何只使用一个 boost 库/文件?

visual-studio - 'X8 6' conflicts with target machine type ' x64'

xamarin.ios - Apple Mac OS 可以在 Windows 中的虚拟机上作为 Xamarin.iOS 的构建主机运行吗?

C#:无法将类型为 'System.Int64' 的对象转换为类型 'System.Int32'

android - 如何使用 Mono for Android 将 iOS MonoTouch 应用程序转换为 Android 版本?

c# - WPF 中的 DatePicker 显示 01.01.0001 而不是今天

c# - 如何在适用于 C# 的 Azure SDK 中使用仅获取 IList

c# - 在 RestSharp 中优雅地处理一个空的 json 对象

c++ - 使用正则表达式查找和替换