تغيير إعدادات ClickOnce استنادا إلى تكوين البنية المحدد (إصدار .NET Framework فقط)

تحديث الصفحة :
تاريخ إنشاء الصفحة :

وسط

اطار
  • نماذج Windows (.NET Framework) بشكل عام
  • WPF (.NET Framework) بشكل عام

فرضيه

محتويات هذه النصائح هي افتراضات المشروع ل .NET Framework. في حالة .NET (Core) ، يمكنك تعيين إعدادات نشر ClickOnce في وحدة تكوين الإنشاء ، لذا يرجى النشر كالمعتاد.

كما يفترض أن لديك معرفة كافية لاستخدام ClickOnce بشكل طبيعي.

في البداية

نظرا لأن مشروع .NET Framework يمكن أن يحتوي على إعداد نشر ClickOnce واحد فقط، على سبيل المثال، للنشر باستخدام إعدادات مختلفة في إنشاء تصحيح الأخطاء وإنشاء إصدار، يجب تغيير الإعدادات يدويا في كل مرة قبل النشر.

يمكنك الحصول على إعدادين عن طريق تجميع المشاريع في DLL وإنشاء مشروعين منفصلين للنشر. سيكون لديك نفس التكوين مرتين ، وإذا كانت هناك ملفات موارد ضرورية للنشر ، فيجب أن يكون لديك اثنان منها في وقت واحد ، لذلك ستكون الإدارة مزعجة.

يوضح هذا القسم كيفية إنشاء ملف دفعي (.bat) بأكبر عدد ممكن من الإعدادات التي تحتاجها ونشر ClickOnce.

تكوين ClickOnce

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

أولا ، افتح المشروع وأدخل إعدادات ClickOnce كالمعتاد. يتم تعيين محتويات الإدخال إلى معلمات يتم إصدارها بواسطة Debug ، ولكن أي شيء آخر غير الجزء المشترك على ما يرام طالما أنه لا يسبب خطأ.

فيما يلي مثال على التكوين:

بمجرد الكتابة، احفظ المشروع.

إنشاء ملف .bat لنشر ClickOnce

نظرا لأنه يتم إصداره بأمر ، يمكن تنفيذه على وسائط أخرى مثل PowerShell ، ولكن هذه المرة يتم إنشاؤه كملف BAT.

يمكنك إنشاء الملف في أي مكان ، ولكن لأغراض البساطة ، سأقوم بإنشائه في موقع ملف الحل (.sln). نظرا لأنه ملف BAT ، فإن ترميز الأحرف هو Shift-JIS. يمكن أن يكون PS1 UTF-8 (BOM).

افتح ملف BAT في محرر نصوص واكتب: لاحظ أن PowerShell قد يتعامل مع الهروب بشكل مختلف.

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\"

يشير السطر الأول إلى موقع "موجه أوامر المطور". يعتمد هذا المسار على إصدار Visual Studio الذي تقوم بتثبيته.

يعتمد كل جزء من المسار على الشروط التالية:

ملفات البرنامج
شروط المسار
ملفات البرنامج
  • إذا كنت تستخدم نظام تشغيل 32 بت
  • إذا كنت تستخدم إصدار 64 بت من Visual Studio على نظام تشغيل 64 بت
ملفات البرنامج (x86)
  • إذا كنت تستخدم إصدار 32 بت من Visual Studio على نظام تشغيل 64 بت
2022
يعتمد ذلك على إصدار Visual Studio الذي تقوم بتثبيته.
مجتمع
يعتمد ذلك على إصدار Visual Studio الذي تقوم بتثبيته. سيتم إدخال "المجتمع" ، "المهني" ، "المؤسسة" ، وما إلى ذلك.

السطر الثاني ينقل الدليل الحالي إلى موقع ملف BAT.

السطر الثالث هو أمر معالجة إنشاء ClickOnce. معنى كل معلمة هو كما يلي.

وصف اسم المعلمة
مسبيلد أمر ينفذ عملية الإنشاء. مطلوب ومكتوب أولا.
ClickOnceBuildConfiguration.sln يصف اسم ملف الحل المراد إنشاؤه.
/t:Publish يشير إلى عملية إنشاء ClickOnce.
/p:Configuration=Debug يحدد تكوين البنية الذي قمت بتعيينه للحل الخاص بك. إذا كنت ترغب في تغيير تكوين تصحيح الأخطاء المراد إنشاؤه ، فقم بتغيير النص في جزء "التصحيح".
/p:PublishUrl="publish\Debug\\" الكتابة فوق قيمة "موقع المجلد العمومي" على شاشة نشر Visual Studio مع السلسلة المحددة وتنفيذها.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" الكتابة فوق قيمة "عنوان URL لمجلد التثبيت" على شاشة نشر Visual Studio مع السلسلة المحددة وتنفيذها.

تم استخراج بعض المعلمات ، ولكن راجع الروابط التالية للحصول على معلمات أخرى:

كعينة هذه المرة ، سنقوم بتغيير معلمات النشر الخاصة ب ClickOnce في كل إصدار تصحيح وإصدار ، لذلك سنقوم بإنشائه على النحو التالي.

نشرت من قبل ClickOnceDebug.bat

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\"

ClickOnceRelease .bat المنشورة

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /p:Configuration=Release /p:PublishUrl="publish\Release\\" /p:InstallUrl="\\xxxxServer\publish_Release\\"

ClickOnce ينشر تنفيذ ملف BAT

حاول تشغيل كل ملف BAT.

يتم تشغيل موجه الأوامر ويبدأ الإنشاء.

في الواقع ، ملف BAT الذي تم إنشاؤه هذه المرة هو مجرد عملية حتى الإنشاء ، لذلك لا يتم إنشاء الملف في "موقع المجلد العمومي". تم إنشاء الملفات اللازمة للنشر. على سبيل المثال، في حالة إنشاء تصحيح، يجب أن يكون لديك ملف في "< مسار مجلد المشروع >\bin\Debug\app.publish\". انسخ هذه الملفات إلى "عنوان URL لمجلد التثبيت" وسيعمل بشكل صحيح ك ClickOnce.

النشر إلى موقع مجلد عمومي (إذا كانت الوجهة مجلد لديك حق الوصول المباشر إليه)

يستخدم الموقع التالي كمرجع لهذا الجزء.

لا ترتبط هذه المنطقة مباشرة بمعالجة ClickOnce ، لذا يرجى الرجوع إلى الموقع أعلاه للحصول على شرح مفصل.

أولا، افتح ملف المشروع (.csproj) في محرر نصوص. إنه ليس ملف حل.

يوجد في الداخل بنية XML ، وإذا قمت بالتمرير إلى الأسفل ، فأضف </Project> التعليمة البرمجية التالية إلى السطر الموجود فوقها. إذا كانت عملية فرضية نسخ ملف ، يتم إصلاح المحتويات ، ولكن الجزء منها CopyPublishedApplication تعسفي. ستستخدم هذا الاسم لاحقا.

<!-- ここから ClickOnce の発行処理 -->
<Target Name="CopyPublishedApplication">
  <ItemGroup>
    <MySourceFiles Include="$(PublishDir)**\*.*" Exclude="$(PublishDir)$(AssemblyName).exe" />
  </ItemGroup>
  <PropertyGroup>
    <AppricationDir>$(_DeploymentApplicationDir.Substring($(PublishDir.Length)))</AppricationDir>
  </PropertyGroup>
  <Copy SourceFiles="@(MySourceFiles)" DestinationFiles="@(MySourceFiles->'$(PublishUrl)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!-- ここまで ClickOnce の発行処理 -->

احفظه بمجرد إدخاله.

ثم افتح كل ملف BAT وأضف إلى /t:CopyPublishedApplication معلمات msbuild. CopyPublishedApplication هو الاسم الذي أعطيته لك سابقا.

ينشر ClickOnceDebug .bat (مثال)

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\"

عند تشغيل ملف BAT يمكنك أن ترى أن الملف يتم نسخه إلى موقع المجلد العمومي. في الوقت الحالي ، لا يوجد اسم برنامج < >.exe الملف ، ولكنه غير ضروري لأنه مضمن في الأصل في الإعداد .exe.

ذيل

إذا كانت هناك مشاريع متعددة في الحل ، تشغيلها CopyPublishedApplication لجميع المشاريع. في معظم الحالات ، يتم تعيينه فقط إلى مشروع exe ، لذلك سيتم عرض خطأ عند التشغيل في CopyPublishedApplication مشروع آخر ، من الآمن تجاهله لأنه يعرض رسالة فقط.

النشر إلى موقع مجلد عمومي (ل FTP)

لم أحاول ذلك ، ولكن قد ترغب في الرجوع إلى المواقع التالية.

أشياء أخرى يجب وضعها في الاعتبار