1

ここからの指示を使用: http://visualstudiogallery.msdn.microsoft.com/527286e4-b06a-4234-adde-d313c9c3c23e

Update 2 で Visual Studio 2013 を管理者として実行しています。

C# BWRC プロジェクト、TestBwrc を作成します。Class.cs に、1 を返す int プロパティを追加します。

このソリューションに、TestBwrc.Ps という名前の C++ Brokered Windows ProxyStub という新しいプロジェクトを追加します。

TestBwrc プロジェクトへの参照を追加し、プロジェクトのリンカー プロパティを Register Output に設定します。

次に、ソリューションをビルドします。

このソリューションに、TestBwrc.Client という名前の C# の空の Windows ストア アプリである新しいプロジェクトを追加します。TestBwrc.Ps プロジェクトへの参照を追加します。エラーや警告なしでソリューションがビルドされます。

App.xaml.cs OnLaunched メソッドで、TestBwrc.Class c = new TestBwrc.Class(); を追加します。Visual Studio で「シンボル 'クラス' を解決できません」というメッセージが表示される ソリューションはエラーや警告なしでビルドされます。

アプリを実行すると例外がスローされ、TestBwrc.Class が登録されていません。

私は何が欠けていますか?

編集:

また、TestBwrc.Client で、TestBwrc.Class の ClassId と "..\Debug\TestBwrc.Ps" のパス値を使用して、Extensions タグをアプリ マニフェストに追加しました。

4

1 に答える 1

0

問題は、私の編集で述べたように、ActivateableClassAttribute の「..\Debug\TestBwrc.Ps」のパス値です。%ProgramFiles% は展開されますが、.. も $(SolutionDir) も展開されません。したがって、for dev で機能する唯一の値は C:\dev\TestBwrc\Debug\TestBwrc.Ps です。

  <Extensions>
    <Extension Category="windows.activatableClass.inProcessServer">
      <InProcessServer>
        <Path>clrhost.dll</Path>
        <ActivatableClass ActivatableClassId="TestBwrc.Class" ThreadingModel="MTA">
          <ActivatableClassAttribute Name="DesktopApplicationPath" Type="string" Value="C:\dev\TestBwrc\Debug\TestBwrc.Ps" />
        </ActivatableClass>
      </InProcessServer>
    </Extension>
  </Extensions>
于 2014-07-03T20:24:38.257 に答える