1

.Droid-Solution と SharedProject を使用して作業中の Android プロジェクトがあります。携帯電話でアプリを起動しましたが、うまく機能します。ここで、空白の Windows 10 ユニバーサル ソリューションを追加し、次の手順を実行しました: http://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/

とにかく... 私は他に何もしませんでした。指示に従って Windows 10 ユニバーサル アプリを起動しようとしたところ、次のエラーが発生しました。

「CS0103 C# 名前 'InitializeComponent' は現在のコンテキストに存在しません。」

何度かグーグル検索しましたが、役立つものが見つかりませんでした。

ここの例も試しました: https://github.com/jamesmontemagno/Hanselman.Formsで同じエラーが発生しました。

誰かがXamarin.FormsWindows 10 Universal Apps でこのエラーを知っていますか?

4

2 に答える 2

2

Xamarin.Forms で .XAML ページを作成するたびに、3 つの異なる場所で部分クラス定義を使用しています。

実際の .xaml ファイルには、名前空間とクラス名を定義するルート要素に Class="" 属性があります。実際のルート要素の型は、新しい .xaml ページがサブクラス化する基本クラスを定義します。デフォルトでは、それは ContentPage です。

また、部分的なクラス定義を含むリンクされた .xaml.cs ファイルも取得します。これはコード ビハインド ファイルで、ページ固有のコードを配置します。これは、コンストラクターから InitializeComponent() 呼び出しが呼び出される場所でもあります。

この呼び出しは、xaml のコンテンツを解析し、xaml で x:name="something" を使用して ID を指定したすべてのビューへの参照を入力します。

InitializeComponent() は xamarin によって自動的に生成されます。これはプロジェクトの出力の一部であり、.xaml ファイルを編集するたびに再生成する必要があります。

これを行うには、.xaml ファイルのプロパティで、ビルド アクションを「埋め込みリソース」に設定し、カスタム ツールを「MSBuild:UpdateDesignTimeXaml」に設定する必要があります。

現在、これらの値が正しく設定されていても、Xamarin にはバグがあり、ファイルが生成されず、エラーが発生する可能性があります。

このエラーが発生したときに最初に試すことは、.xaml ファイルを右クリックし、[カスタム ツールの実行] をクリックすることです。これを行う必要があるのは 1 つの xaml ファイルに対して 1 回だけで、ツールはプロジェクト内のすべての .xaml ファイルに対して自動的に実行されます。

これは、通常の開発中に 1 日に 1 回実行しなければならないことであり、VS 2015 に切り替えたときに始まりました。

確認すべきもう 1 つの非常に重要な点は、.csproj ファイルの BuildTargets です。

Xamarin がそれを実行できる方法は、Xamarin.Forms nuget パッケージをインストールするときに取得する DLL を呼び出すビルド アクションを指定することです。ビルド アクションのインポート行がめちゃくちゃになることがあり、これがあらゆる種類の問題を引き起こします。

.csproj をアンロードし、Xamarin.Forms.targets をインポートする行を見つけます。次のようになります。

<Import Project="..\..\packages\Xamarin.Forms.2.0.0.6484\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.0.0.6484\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />

ここのバージョンが packages.config ファイルの Xamarin.Forms のバージョンと一致していることを確認してから、実際にプロジェクトのルート フォルダーに移動できることを確認し、重要な行が参照している実際のファイルを見つけます。つまり、packages\xamarin...\Xamarin.Forms.targets

一般的に行うことは、\packages\ からすべてを削除し、次のビルドで nuget にすべてを再ダウンロードさせることです。.csproj インポートのバージョンと packages.config のバージョンが同じであることを確認してください。

これらがすべて完了すると、InitializeComponent() を実装する有効な部分クラスが生成され、エラーが消えるはずです。

于 2016-01-20T09:43:11.970 に答える
1

これに対する更新として:

  1. VM 内のすべての更新プログラムを含む、新しくクリーンな Windows 10 Pro のインストール。

  2. すべてのオプションが選択され、すべての更新が行われた、新しくクリーンな Visual Studio 2015 Community Edition のインストール。

  3. 新しいプロジェクト: Xamarin.Forms.PortableNowt が生成されたコードを含む空の Xaml アプリ ( )。

が現在のコンテキストに存在しないため、プロジェクトはビルドさInitializeComponentれません。App.xaml.cs

意見:この Xamarin アドオンは、無料の製品の上に追加された無料のアドオンですが、それでも、この種のことは、実際にそれを使用するように促すものではありません...

于 2016-07-27T10:43:24.373 に答える