[英]Visual Studio set TargetFrameworkMoniker in Extension VS2012
我嘗試使用Visual Studio 2012的VSMonoTouch插件完全在Visual Studio中構建我的跨平台解決方案。 因為這並沒有得到真正的支持,並且維護者看起來並不像他將創建一個新分支,所以其他人將其移植到了2012年。看起來可以在任何地方工作,而不僅僅是我的安裝。
首先,有關安裝內容的一些信息:
C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework
我已經完成的工作是獲取所有代碼並使用VS啟動擴展。 我可以看到,在以下代碼中發生了此異常:(異常發生在行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;
}
例外:
結果:-2147352567
異常消息:
災難性故障(HRESULT的異常:0x8000FFFF(E_UNEXPECTED))
異常Stacktrace:
位於Follesoe.VSMonoTouch.SolutionEvents.OnAfterOpenProject的EnvDTE.Property.set_Value(Object lppvReturn)(IVsHierarchy pHierarchy,Int32 fAdded)在c:\\ Projects \\ VSMonoTouch \\ VSMonoTouch \\ VSMonoTouchPackage.cs:line 170
真正奇怪的是,當我打開一個csproj-MonoTuch-Project時,該項目一直在加載/卸載-加載/卸載-...直到VS崩潰。 也不例外。 打開包含MonoTouch-Project的現有解決方案時,出現上述異常。 (例如,打開MvvmCross-vNExt-Solution)
我的v1.0 .NETFramework文件夾似乎可以正常工作,因為我可以在Project屬性中將控制台應用程序切換到該目標Framework。 當我只是取消注釋崩潰的代碼時,VS會加載項目,但是看上去處於有線狀態。 我無法更改目標框架(項目屬性中根本沒有選擇)
任何可能觸發此異常的小主意將不勝感激。
好的,我已經通過全新安裝VS解決了此問題。 似乎是我的舊書中有東西損壞了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.