عدم السماح بنشر إصدارات تصحيح الأخطاء لنشر ClickOnce

StackOverflow https://stackoverflow.com/questions/47107

  •  09-06-2019
  •  | 
  •  

سؤال

هل هناك طريقة لمنع نشر إصدارات تصحيح الأخطاء باستخدام ClickOnce؟

أريد فقط السماح بإصدار الإصدارات، ولكن في الوقت الحالي يتسبب الخطأ البشري في تسلل إصدار تصحيح الأخطاء من حين لآخر.

نحن ننشر البناء من داخل Visual Studio.

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

المحلول

شيء واحد يمكنك القيام به هو إضافة شرط إلى ملف .csproj أو .vbproj الذي سيتحقق منه MSBuild عند إجراء الإنشاء.

سيتحقق الشرط من حدوث عملية نشر ويتحقق مما إذا كانت البنية عبارة عن بناء تصحيح أخطاء، ثم تفعل شيئًا مثل تشغيل أداة خارجية أو مقاطعة عملية البناء أو التسبب في فشلها.

مثال قد يكون شيء من هذا القبيل:

<Choose>
    <When Condition=" '$(Configuration)'=='Debug' ">
        <Exec Command="C:\foo.bat" ContinueOnError="false" />
    </When>
 </Choose>

حيث foo.bat هو ملف دفعي يُرجع قيمة غير صفرية، وبالتالي يمنع حدوث النشر.

نصائح أخرى

لقد بدأت في تعديل ملفات .csproj لتشمل التعليمة البرمجية التالية لإلقاء خطأ عند نشر التصحيح، مما يمنع حدوث النشر بشكل فعال:

<!-- The following makes sure we don’t try to publish a configuration that defines the DEBUG constant -->
<Target Name="BeforePublish">
    <Error Condition="'$(DebugSymbols)' == 'true'" Text="You attempted to publish a configuration that defines the DEBUG constant!" />
</Target>

فقط ضعه في نهاية الملف، مباشرة قبل </Project> بطاقة شعار.

(المصدر الأصلي: http://www.nathanpjones.com/wp/2010/05/preventing-clickonce-publishing-a-debug-configuration/comment-page-1/#comment-625)

لقد اخترت حلاً آخر يناسبني:

لم أستطع تغيير عملية البناء الخاصة بي.لذلك أنا فعلت أدواتيعدل أو يكيف... وقم بتغيير نص الإجراء، وإضافة تنبيه مثل "نشر [التكوين للإصدار!]"، ووضع الزر "نشر" بجوار خيار تكوين التصحيح/الإصدار.من السهل!

وبهذا قللت إلى حد كبير من خطر الخطأ البشري.يجب أن تكون هذه الأزرار معًا دائمًا.

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