我尝试使用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会加载项目,但似乎处于有线状态。我无法更改目标框架(在项目属性中根本没有选择)
任何可能触发此异常的小想法都将受到高度赞赏。