سؤال

بلدي التطبيق ClickOnce يستخدم أداة طرف ثالث الذي يتطلب Visual C++ 2005.الطرف الثالث الأداة لن تعمل إلا إذا كان VC++ 2008 redistributable المثبتة.ومع ذلك ، في Visual Studio 2008 ، ClickOnce الشروط لا تسمح الإصدار أن تكون محددة VC++ redistributable;فإنه سيتم إضافة VC++ 2008 شرط ، الأمر الذي يجعل الشعور أكثر من مرة.ومع ذلك ، في هذه الحالة ، إصدار سابق هو مطلوب.ClickOnce هو المطلوب, بحيث الوحدات النمطية دمج الخروج من السؤال.أي أفكار عن كيفية تحديد الإصدار ؟

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

المحلول

إذا كان يمكنك العثور على آلة VS 2005 تثبيت الحل لا يجب أن يكون صعبا.لديك القدرة على تخصيص ما يظهر في شروط الحوار على علامة التبويب نشر المشروع الخاص بك.

  1. على آلة VS 2005 مثبتة ، انتقل إلى \Program Files\Microsoft Visual Studio 8\SDK\v2.0\الإطلاق\حزم ونسخ vsredist_x86 المجلد إلى آلة تقوم بالنشر من.
  2. إعادة تسمية المجلد نسميها vsredist_إلى x86_2005 أو شيئا من هذا القبيل.
  3. داخل مجلد تحرير \en\package.xml الملف.تغيير <String Name="DisplayName"> الوسم إلى شيء معنى (Visual C++ 2005 مكتبات وقت التشغيل (x86)) لتمييزه عن القائمة 2008 حزمة.
  4. نسخ المجلد إلى C:\Program Files\Microsoft SDKs\Windows\v6.0A\الإطلاق\حزم.
  5. إعادة تشغيل Visual Studio إذا كان مفتوحا.

الآن عند فتح الشروط الحوار يجب أن تشاهد إدخال جديد لعام 2005 الحزمة.لم أكن تماما اختبار هذا الحل إذا كنت قد غاب عن بعض التفاصيل ولكن نأمل أن هذا يحصل لك بدأت.

نصائح أخرى

وأعتقد أن تتمكن من فتح الملف manifest التطبيق و تعديل إصدارات redists التطبيق الخاص بك يجب أن يكون ربط ضد.القوائم في البيان يجب أن يتطابق مع ما لديك في الخاص بك C:\Windows\WinSxS dirs.هناك CodeProject الصفحة أن يعطي وصفا جيدا باستخدام مختلف redistributables.

أنا فقط تثبيت Visual Studio 2005.هنا هو الأصلي الإطلاق:

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\الإطلاق\حزم\vcredist_x86\

\en\package.xml

<?xml version="1.0" encoding="utf-8" ?>

<Package
  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
  Name="DisplayName"
  Culture="Culture"
>

    <!-- Defines a localizable string table for error messages-->
    <Strings>
        <String Name="DisplayName">Visual C++ Runtime Libraries (x86)</String>
        <String Name="Culture">en</String>
        <String Name="AdminRequired">You do not have the permissions required to install Visual C++ Runtime Libraries (x86). Please contact your administrator.</String>
        <String Name="InvalidPlatformWin9x">Installation of Visual C++ Runtime Libraries (x86) is not supported on Windows 95. Contact your application vendor.</String>
        <String Name="InvalidPlatformWinNT">Installation of Visual C++ Runtime Libraries (x86) is not supported on Windows NT 4.0. Contact your application vendor.</String>
        <String Name="GeneralFailure">A failure occurred attempting to install Visual C++ Runtime Libraries (x86).</String>
    </Strings>

</Package>

\product.xml

<?xml version="1.0" encoding="utf-8" ?> 

<Product
  xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
  ProductCode="Microsoft.Visual.C++.8.0.x86"
>

  <!-- Defines list of files to be copied on build -->
  <PackageFiles>
    <PackageFile Name="vcredist_x86.exe"/>
  </PackageFiles>

  <InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{A49F249F-0C91-497F-86DF-B2585E8E76B7}"/>
  </InstallChecks>

  <!-- Defines how to invoke the setup for the Visual C++ 8.0 redist -->
  <!-- TODO: Needs EstrimatedTempSpace, LogFile, and an update of EstimatedDiskSpace -->
  <Commands Reboot="Defer">
    <Command PackageFile="vcredist_x86.exe" 
         Arguments=' /q:a ' 
         >

      <!-- These checks determine whether the package is to be installed -->
      <InstallConditions>
        <BypassIf Property="VCRedistInstalled" Compare="ValueGreaterThanOrEqualTo" Value="3"/>
        <!-- Block install if user does not have admin privileges -->
        <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>

        <!-- Block install on Win95 -->
        <FailIf Property="Version9X" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>

        <!-- Block install on NT 4 or less -->
        <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.00" String="InvalidPlatformWinNT"/>

      </InstallConditions>

      <ExitCodes>
        <ExitCode Value="0" Result="Success"/>
        <ExitCode Value="3010" Result="SuccessReboot"/>
        <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
      </ExitCodes>

    </Command>
  </Commands>
</Product>

\vcredist_x86.exe

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