g.csファイルからの古い名前空間を削除しますか?
-
25-09-2019 - |
質問
私は以前、「コントロール」と呼ばれる私のWPFアプリケーションプロジェクトにサブフォルダを持っていました。これは、WPFユーザーコントロールを含んでいました。私は私の「ビュー」フォルダにそのユーザーコントロールを移動することを決めました。元のフォルダが空だったので、私はプロジェクトから削除することを決めました。
ユーザーコントロールとフォルダは、ユーザーコントロールはProjectName.Folder
名前空間となりました何も言及、それを使用するので、私はコンパイルエラーを受け取る削除されますので。 MainWindow.g.csは、参照は、usingステートメントでProjectName.Controls
ものです。
私は* .g.csはVSによって生成され、それが上書きされますので、編集することができないことを知っています。私は名前空間がg.csファイルに書き込まれることを許可しないために何をしますか?私は自分のソリューション/プロジェクトと再構築を掃除しようとしたが、何も働いていない。
解決
私は私のXAMLコード(MainWindow.xaml)のコントロールの名前空間へのローカル参照を持っていました。私は、参照を削除し、プロジェクトをきれいにし、成功したビルドを生産ます。
他のヒント
ユーザーコントロールファイルで、
以下のようにあなたのClassName.xamlでは、名前空間を変更する必要があります。
<UserControl
x:Class="YourOldNamespace.ClassName"
...
...
/>
以下のようにそして、あなたのClassName.xaml.csでは、名前空間を変更する必要があります
using System;
using System.Windows;
namespace YourOldNamespace{
public class ClassName{ ....
}
必要に応じてファイルの両方で、あなたには、いくつかの新しい名前空間にYourOldNamespaceを交換する必要があります。
私も前に、私のプロジェクトでg.csファイルに問題がありました。それらが自動生成されているので、私は手動でファイルを削除して再構築する傾向がある。
いけないはあなたが影響を受けたXAMLファイルをクリックしてビルドアクションプロパティがページに設定されている場合、(代わりに、リソースの)を確認しなければならないことを、あまりにも忘れて。これは、あなたが時間を節約するために、コピー&ペースト使用して別のプロジェクトからXAMLをコピーする際に知っておくと便利です。
またApp.xamlを見て、あなたのリソースディクショナリのすべて。何らかの理由で、VS 2012人のは、ファイル/「ソリューション全体」オプションに置き換えること手動で変更しなければならなかったApp.xamlの古い名前空間の参照を、見つけることができませんでした。私のためにそれを修正しました。
あまりにもあなたGeneric.xamlファイルを変更することを忘れないでください。
<ResourceDictionary
xmlns:local="clr-namespace:MyOldNameSpace">
</ResourceDictionary>