سؤال

سبق لي أن كان لدي مقلع فرعي في مشروع تطبيق WPF الخاص بي يسمى "عناصر التحكم". كان يحتوي على عنصر تحكم مستخدم WPF. قررت نقل عنصر تحكم المستخدم إلى مجلد "طرق العرض" الخاصة بي. نظرًا لأن المجلد الأصلي كان فارغًا ، فقد قررت حذفه من المشروع.

نظرًا لأن التحكم في المستخدم ومجلده يتم إزالته ، أتلقى خطأ في التجميع لأن عنصر تحكم المستخدم استخدم ProjectName.Folder مساحة الاسم والآن لا شيء يشير إليها. mainwindow.g.cs هو ما المراجع 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 في مشاريعي من قبل أيضًا. نظرًا لأنها تم إنشاؤها تلقائيًا ، أميل إلى حذف الملف يدويًا وإعادة البناء.

لا تنسى أيضًا ، يجب عليك التحقق لمعرفة ما إذا كانت خاصية Action Build عند النقر فوق ملف XAML المتأثر تم تعيينه على الصفحة (بدلاً من المورد). يعد هذا مفيدًا لمعرفة عند نسخ XAML من مشروع آخر باستخدام ملصق النسخ لتوفير الوقت.

انظر أيضًا إلى app.xaml وجميع قواميس الموارد الخاصة بك. لأي سبب من الأسباب ، لم يجد خيار VS 2012 في الملفات / "الحل الكامل" مرجع مساحة الاسم القديم في App.xaml ، لتغيير ذلك يدويًا. أصلحه لي.

لا تنس تغيير ملف generic.xaml أيضًا ،

<ResourceDictionary 
                   xmlns:local="clr-namespace:MyOldNameSpace">
</ResourceDictionary>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top