3
我在WP8應用程序中有一個C++運行時組件,如果更改名稱空間名稱,每次嘗試實例化類時都會收到「TargetInvocation」異常命名空間。在Windows Phone中更改C++組件的名稱空間名稱會導致異常
舉個例子,如果我創建默認的C++ Windows運行時組件,標題是這樣的:
#pragma once
namespace CppComponent1
{
public ref class WindowsPhoneRuntimeComponent sealed
{
public:
WindowsPhoneRuntimeComponent();
};
}
如果我在.H和在.cpp改變CppComponent1
到CppComponent2
,然後嘗試在我的C#代碼實例化一個對象WindowsPhoneRuntimeComponent
,我得到以下錯誤:
A first chance exception of type 'System.TypeLoadException' occurred in Unknown Module.
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.ni.dll
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in Microsoft.Phone.ni.dll
如何更改本機模塊的名稱空間的WP8應用程序?謝謝!
我無法找到設置來更改'.winmd'文件的名稱。事實上,我根本找不到「.winmd」文件。我是否需要進入並手動編輯文件,或者有沒有辦法在Visual Studio GUI中進行設置? – staticfloat
在項目屬性中,在鏈接器 - > Windows元數據下,請參閱Windows元數據文件屬性。它默認爲'$(OutDir)$(RootNamespace).winmd'。我看不到'$(RootNamespace)'在哪裏定義;它可能會在目標中定義。如果我沒有記錯,它默認爲('$(ProjectName)')的名稱。 –
太棒了!你可以通過點擊你的C++項目來改變'$(RootNamespace)'宏,點擊ALT-ENTER打開「屬性」窗口(與右鍵單擊項目並單擊「屬性」不同的「屬性」)並更改「Root Namespace」的值!您可能需要使用此信息更新您的答案,以便其他搜索此人的人可以找到它。 – staticfloat