2013-01-16 99 views
2

我尝试使用Visual Studio 2012的VSMonoTouch插件在Visual Studio中完全构建我的跨平台解决方案。 由于这不是真的支持,维护人员看起来并不像他将创建一个新的分支,其他人将其移植到2012年。 看起来在任何地方工作,只是不是我的安装。Visual Studio在扩展VS2012中设置TargetFrameworkMoniker

首先上安装的一些信息:在C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework

  • 运8的64位
  • VS 2012高级
  • .NET 4.5
  • V1.0,文件夹我已经完成了所有的代码并使用VS开始扩展。我可以看到的是,在下面的代码发生此异常:

    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; 
    } 
    

    异常::

    HRESULT:-2147352567

    代码(上线item.Value = v10FrameworkName发生异常)

    异常消息:

    灾难性故障(从HRESULT异常:0x8000FFFF (E_UNEXPECTED)):在 Follesoe.VSMonoTouch.SolutionEvents.OnAfterOpenProject

    在EnvDTE.Property.set_Value(对象lppvReturn)

    异常堆栈跟踪(IVsHierarchy pHierarchy,的Int32 fAdded)在 C:\项目\ VSMonoTouch \ VSMonoTouch \ VSMonoTouchPackage.cs:线170

    真正奇怪的是,当我打开一个csproj-MonoTuch-Project时,项目不断加载/卸载 - 加载/卸载 - ...直到VS崩溃。 没有例外。 当打开一个包含MonoTouch-Project的现有解决方案时,我得到上面的例外。 (例如打开MvvmCross-vNExt-Solution)

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

    任何可能触发此异常的小想法都将受到高度赞赏。

回答

1

好吧,我已经通过干净的安装VS解决了这个问题。似乎是在我的旧版本中有一些腐败..