Visual Studio在扩展VS2012中设置了TargetFrameworkMoniker

本文关键字:设置 TargetFrameworkMoniker VS2012 Studio 扩展 Visual | 更新日期: 2023-09-27 17:53:42

我尝试使用VSMonoTouch Plugin for Visual Studio 2012来完全在Visual Studio中构建我的跨平台解决方案。由于这并没有得到真正的支持,而且维护者看起来也不像是真的要创建一个新的分支,一些人把它移植到了2012年。看起来可以在任何地方工作,只是没有一个我的安装。

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

  • win8 64位
  • VS 2012 Premium
  • 。NET 4.5
  • v1.0-Folder in C:'Program Files (x86)'Reference Assemblies'Microsoft'Framework'.NETFramework

我已经做的是得到所有的代码,并开始使用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;
}
异常:

HRESULT: -2147352567

异常信息:

灾难性失败(Exception from HRESULT: 0x8000FFFF)(E_UNEXPECTED))

异常异常堆栈:

在EnvDTE.Property

。set_Value(对象lppvReturn)Follesoe.VSMonoTouch.SolutionEvents.OnAfterOpenProject (IVsHierarchy层次结构,Int32(添加)在c: ' '项目VSMonoTouch ' VSMonoTouch ' VSMonoTouchPackage.cs: 170行

真正奇怪的是,当我打开csproject - monotouch - project时,项目一直在加载/卸载-加载/卸载-…直到VS崩溃。没有例外。当打开包含monotouch项目的现有解决方案时,我得到了上面的异常。(例如打开MvvmCross-vNExt-Solution)

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

Visual Studio在扩展VS2012中设置了TargetFrameworkMoniker

好的,我已经解决了这个问题,通过做一个干净的安装VS.似乎是有一些东西在我的旧的…