سؤال

عندما أستخدم Application.userappdatapath للوصول إلى التكوينات، فقد حصلت على ArgumentException "أحرف غير قانونية في المسار". وفقا ل Microsoft IT هو ليس خطأ، ولكن ميزة؛

الطريقة الوحيدة التي يمكنك فيها الحصول على حرف غير قانوني في fixversionInfo.productversion (وبالتالي في التطبيق .productversion.userappdatapath) هو عندما يكون لديك أيضا التجميع في التجميع. يتم نسخ القيمة التي تذهب إلى CasselessFileversion إلى موارد Win32 Verbatim ويتجاوز القيمة التي تمر بتجميعها. هذا السلوك حسب التصميم.

لذلك من خلال التعليق [الجمعية: التجمعفيلس ("...")] في AssemessInfo.cs One يمكن أن يحل هذا الاستثناء.

المشكلة هي : أنا أكتب بعض .dll مع عناصر تحكم WinForms. أسهل تصميم للحصول على هذا المسار سيكون استخدام التطبيق.userappdatapath. ولكن إذا تم استخدام Application.userappdatapath، فإن المطورين الذين يستخدمون هذه المكتبة لا يمكن أن يكون لديهم التجميع لملفات .exe بهم. (في حين أن ClosssementFileversion موجود في التجمع .CS بشكل افتراضي)

أيضا لم أتمكن من العثور على أي معلومات من قبل Microsoft باستخدام CasselessFileVerversion يجب أن فرامل تطبيقي ويجب ألا يستخدمه شخص ما. لذلك أنا في الواقع، لا أستطيع أن أسألها عن مستخدمي هذه المكتبة.

هل هناك سبب أو منطق في مثل هذا الوضع الغريب؟ ما هو أفضل من العمل للحصول على التطبيق. مسار Seraperappdatapath دون أي مشاكل؟

بينما لدي التجمع والتطبيق. سيقوم UserAppdatapath بإلقاء الاستثناء، ويعمل التطبيق ويمكنني الحصول على هذا المسار من خلال

giveacodicetagpre.

ملفات التكوين موجودة وليس لديك أي مشاكل. ولكن بالتأكيد، إنها طريقة قبيحة.

هل كانت مفيدة؟

المحلول

إذا قرأت هذا المنشور على الاتصال بشكل صحيح، فعليك استخدام GransodicetAgcode مع Char غير قانوني ('*').

ينتهي ب "إذا كنت لا تزال تعتقد أن هذا خطأ" ....

هل قمت بإعادة إنتاج الخطأ، وكان ذلك سيناريو واقعي؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top