Aracılığıyla paylaş


İzlenecek yol: son kullanıcının bilgisayarına ClickOnce yüklemeden sonra bir belge kopyalama

ClickOnce dağıtım sonrası eylemi kullanarak belge düzeyi Office çözümleri yükleyip belgeyi son kullanıcı bilgisayarına kopyalayabilirsiniz. Bu, kurulumdan önce uygulama bildirimini değiştirmeyi, uygulama ve dağıtım bildirimlerinin ikisini de yeniden imzalamayı gerektirir.

Uygulama alanı: Bu konudaki bilgiler Microsoft Office 2013 Önizleme ve Microsoft Office 2010'un belge düzeyi projelerine ve uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Bu örneklerde aşağıdaki görevler gösterilir:

  • Dağıtmak üzere bir Office çözümü oluşturma.

  • Bir belgeyi son kullanıcının masaüstüne kopyalayan bir dağıtım sonrası eylemi meydana getirme.

  • Dağıtım sonrası eylemini çalıştırmak için için yükleyici projenin uygulama bildirimini değiştirme.

  • Uygulama ve dağıtım bildirimlerini yeniden imzalama.

Not

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler. Daha fazla bilgi için bkz. Visual Studio ayarları.

Önkoşullar

Bu örneği tamamlamak için aşağıdaki bileşenler gerekmektedir:

-

Microsoft Office geliştirici araçlarını içeren bir Visual Studio 2012 sürümü. Daha fazla bilgi için bkz. [Office Çözümeri Geliştirmek İçin Bilgisayarı Yapılandırma](https://msdn.microsoft.com/tr-tr/library/bb398242\(v=vs.110\)).
  • Excel 2013 Önizleme veya Excel 2010.

  • Test bilgisayarı.

Yeni Bir Proje Oluşturma

İlk başta bir Excel Çalışma Kitabı Projesi oluşturun.

Yeni bir Excel projesi oluşturmak için

  • Bir Excel belge düzeyi projesi oluşturun. Projeyi ExcelWorkbook olarak adlandırın ve %USERPROFILE%\Documents\Visual Studio 2012\Projects dizinine kaydedin. Daha fazla bilgi için bkz. Nasıl yapılır: Visual Studio Office projeler oluşturmak.

    Visual Studio tasarımcıda yeni Excel çalışma kitabını açar ve Çözüm Gezginine ExcelWorkbook projesini ekler.

Dağıtım Sonrası Eylemini Tanımlayan Sınıf Kitaplığı Projesi Oluşturma

Dağıtım sonrası eylemini ayrı bir sınıf kitaplığında tanımlamanız gerekir. Bu dağıtım sonrası eylemi, belgeyi son kullanıcının masaüstüne kopyalar.

Dağıtım sonrası eylemi için bir sınıf kitaplığı oluşturmak için

  1. Dosya menüsünde Ekle'ye gelin ve sonra Yeni Proje'yi tıklayın.

  2. Yeni Proje Ekle iletişim kutusunda, Yüklü Şablonlar bölmesinde, Windows'a tıklayın.

  3. Şablonlar bölmesinde, Sınıf Kitaplığı'nı tıklatın.

  4. Ad alanına FileCopyPDA yazın ve Tamam'ı tıklatın.

  5. İçinde Çözüm Gezgini, tıklayın FileCopyPDA.

  6. Üzerinde Proje menüsünde tıklatın Eklebaşvuru.

    Başvuru Ekle iletişim kutusu görüntülenir.

  7. Üzerinde .net sekmesinde, başvuruları Microsoft.VisualStudio.Tools.Applications.Runtime'a ve Microsoft.VisualStudio.Tools.Applications.ServerDocument'a ekleyin.

  8. Class1 kod dosyasının üst kısmına aşağıdaki using veya Imports ifadelerini ekleyin.

    Imports Microsoft.VisualStudio.Tools.Applications.Deployment
    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications.Deployment;
    using Microsoft.VisualStudio.Tools.Applications;
    using System.IO;
    
  9. Sınıfı FileCopyPDA olarak yeniden adlandırın ve ardından bu FileCopyPDA sınıfına aşağıdaki kodu ekleyin. Bu kod, FileCopyPDA sınıfının IAddInPostDeploymentAction sınıfından türetildiğini belirtir.

    Public Class FileCopyPDA
        Implements IAddInPostDeploymentAction
    
    public class FileCopyPDA : IAddInPostDeploymentAction
    
  10. Aşağıdaki kodu IAddInPostDeploymentAction.Execute yöntemini uygulamak için ekleyin. Bu kod aşağıdaki görevleri gerçekleştirir:

    • Çözüm yüklenmiş veya güncelleştirilmişse Excel çalışma sayfası dosyasını kullanıcının masaüstüne kopyalar.

    • Dağıtım bildirimi için _AssemblyLocation özelliğini göreli yoldan tam yola çevirir. Bu, AddCustomization ve RemoveCustomization yöntemleri kullanılarak yapılır.

    • Çözüm kaldırılmışsa, dosyayı siler.

    Sub Execute(ByVal args As AddInPostDeploymentActionArgs) Implements IAddInPostDeploymentAction.Execute
        Dim dataDirectory As String = "Data\ExcelWorkbook.xlsx"
        Dim file As String = "ExcelWorkbook.xlsx"
        Dim sourcePath As String = args.AddInPath
        Dim deploymentManifestUri As Uri = args.ManifestLocation
        Dim destPath As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
        Dim sourceFile As String = System.IO.Path.Combine(sourcePath, dataDirectory)
        Dim destFile As String = System.IO.Path.Combine(destPath, file)
    
        Select Case args.InstallationStatus
            Case AddInInstallationStatus.InitialInstall, AddInInstallationStatus.Update
                System.IO.File.Copy(sourceFile, destFile)
                ServerDocument.RemoveCustomization(destFile)
                ServerDocument.AddCustomization(destFile, deploymentManifestUri)
                Exit Select
            Case AddInInstallationStatus.Uninstall
                If System.IO.File.Exists(destFile) Then
                    System.IO.File.Delete(destFile)
                End If
                Exit Select
        End Select
    End Sub
    
    public void Execute(AddInPostDeploymentActionArgs args) 
    {
        string dataDirectory = @"Data\ExcelWorkbook.xlsx";
        string file = @"ExcelWorkbook.xlsx";
        string sourcePath = args.AddInPath;
        Uri deploymentManifestUri = args.ManifestLocation;
        string destPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        string sourceFile = System.IO.Path.Combine(sourcePath, dataDirectory);
        string destFile = System.IO.Path.Combine(destPath, file);
    
        switch (args.InstallationStatus)
        {
            case AddInInstallationStatus.InitialInstall:
            case AddInInstallationStatus.Update:
                File.Copy(sourceFile, destFile);
                ServerDocument.RemoveCustomization(destFile);
                ServerDocument.AddCustomization(destFile, deploymentManifestUri);
                break;
            case AddInInstallationStatus.Uninstall:
                if (File.Exists(destFile))
                {
                    File.Delete(destFile);
                }
                break;
        }
    }
    

Çözümü Derleme ve Yayımlama

Office çözümlerini geliştirme bilgisayarınızda derleyip yayımlamak için Yayımlama Sihirbazı'nı veya Proje Sayfası'nı kullanın.

Excel projesini yayımlamak için

  1. Çözüm Gezgini'nde, FileCopyPDA projesine sağ tıklayın ve sonra Derle'yi tıklayın.

  2. Çözüm Gezgini'nde, ExcelWorkbook projesine sağ tıklayın ve sonra Derle'ye tıklayın.

  3. Çözüm Gezgini'nde ExcelWorkbook projesini sağ tıklayın ve Başvuru Ekle'yi tıklayın.

  4. Başvuru Ekle iletişim kutusunda Projeler sekmesini tıklayın.

  5. FileCopyPDA'i ve ardındanTamam'ı tıklayın.

  6. Çözüm Gezgini'nde ExcelWorkbook projesini tıklayın.

  7. Proje menüsünde, Yeni Klasör'ü tıklatın.

  8. Data yazın ve Enter tuşuna basın.

  9. Çözüm Gezgini'nde, Veri dosyasına tıklayın.

  10. Proje menüsünden Varolan Öğe Ekle'yi tıklayın.

  11. Varolan Proje Ekle iletişim kutusunda, ExcelWorkbook projesinin çıktı konumunu bulun.

  12. ExcelWorkbook.xlsx'yi ve sonra da Ekle'yi tıklayın.

  13. Çözüm Gezgini'nde ExcelWorkbook.xlsx projesini tıklayın.

    Not

    Bu dosya daha sonra değiştirirseniz, dosyanın en son sürümü ekleyerek dosya güncelleştirdiğinizden emin olun.

  14. Özellikler penceresinde, Derleme Eylemi özelliğini İçerik, Çıktı Dizinine Kopyala özelliğini Yeniyse kopyala olarak değiştirin.

  15. ExcelWorkbook projesini c:\publish klasöründe yayımlayın. Daha fazla bilgi için bkz. Nasıl yapılır: Office çözüm ClickOnce kullanılarak yayımlama.

Uygulama Bildiriminde Değişiklik Yapma

Uygulama bildirimini File Copy dağıtım sonrası eylemini çalıştırması için değiştirmek amacıyla Visual Studio'daki XML düzenleyicisini kullanın. Bir kutu tüm içeriğini listeleyen bir ürün reçetesi, için bir uygulama bildirimi içeriği benzer; uygulama bildirimini bağımlı ve önkoşul olarak gereken tüm derlemeleri listeler. Bir Office çözümü için uygulama bildirimini de uygulama düzeyi eklentileri ve belge düzeyi özelleştirmeleri için Office uygulaması tarafından yüklenen derlemeleri listeler.

Uygulama bildirimine yükleme bağımlılıklarını eklemek için

  1. Açık c:\publish dosya Gezgini üzerinden dizin.

  2. Application Files klasörünü, ardından ExcelWorkbook_1_0_0_0 klasörünü açın.

  3. ExcelWorkbook.dll.manifest dosyasını bir metin düzenleyicisinde açın.

  4. </vstav3:update> öğesinden sonra aşağıdaki kodu ekleyin. Sınıf özniteliği için <vstav3:entryPoint> öğesinde, aşağıdaki sözdizimini kullanın: İsimUzayıAdı.SınıfAdı. Bu örnekte, isim uzayı ve sınıf adları aynıdır; bu yüzden, oraya çıkan giriş noktasının adı FileCopyPDA.FileCopyPDA'dir.

    <vstav3:postActions>
      <vstav3:postAction>
        <vstav3:entryPoint
          class="FileCopyPDA.FileCopyPDA">
          <assemblyIdentity
            name="FileCopyPDA"
            version="1.0.0.0"
            language="neutral"
            processorArchitecture="msil" />
        </vstav3:entryPoint>
        <vstav3:postActionData>
        </vstav3:postActionData>
      </vstav3:postAction>
    </vstav3:postActions>
    

Bildirimleri Yeniden İmzalama

Aşağıdaki yordamda uygulama bildirimi imzalanır ve dağıtım bildirimi güncellenir. Bu işlem, son kullanıcı bilgisayarları üzerinde değiştirilen dosyaların yüklenmediğini garanti eder.

Uygulama ve dağıtım bildirimlerini yeniden imzalama

  1. ExcelWorkbook_TemporaryKey.pfx sertifika dosyasını %USERPROFILE%\Documents\Visual Studio 2012\Projects\ExcelWorkbook\ExcelWorkbook çözüm dizininden c:\publish\Application Files\ExcelWorkbook_1_0_0_0 dizinine kopyalayın.

  2. Visual Studio Komut istemini açın.

  3. c:\publish\Application Files\ExcelWorkbook_1_0_0_0 dizinine geçin.

  4. Değiştirilmiş uygulama bildirimini aşağıdaki komut ile imzalayın:

    mage -sign ExcelWorkbook.dll.manifest -certfile ExcelWorkbook_TemporaryKey.pfx
    

    "ExcelWorkbook.dll.manifest başarıyla imzalandı" iletisi görüntülenir.

  5. c:\publish dizinine geçin.

  6. Dağıtım bildirimini aşağıdaki komut ile güncelleştirin ve imzalayın:

    mage -update ExcelWorkbook.vsto -appmanifest "Application Files\Ex
    celWorkbook_1_0_0_0\ExcelWorkbook.dll.manifest" -certfile "Application Files\ExcelWorkbook_1_0_0_0\ExcelWorkbook_TemporaryKey.pfx"
    

    "ExcelWorkbook.vsto başarıyla imzalandı" iletisi görüntülenir.

  7. ExcelWorkbook.vsto dosyasını c:\publish\Application Files\ExcelWorkbook_1_0_0_0 dizinine kopyalayın.

Dağıtım Sonrası Eylemini Sınama

Aşağıdaki işlem, güncellenmiş bildirimin Excel çalışma kitabını yüklemesini ve çalışma kitabını son kullanıcının masaüstüne kopyalamasını sağlar.

Dağıtım sonrası eylemini sınamak için

  1. c:\publish dizinini test bilgisayarına kopyalayın.

  2. Setup.exe programını çalıştırın veya önkoşullar test bilgisayarında yüklü ise ExcekWorkbook.vsto dağıtım bildirimini çift tıklayın.

    Microsoft Office Özelleştirme Yükleyicisi görüntülenir.

  3. Yükle’yi tıklatın.

    Microsoft Office Özelleştirme Yükleyicisi iletişim kutusu aşağıdaki iletiyi gösterir: "Microsoft Office özelleştirmesi başarıyla yüklenmiştir." Excel çalışma kitabı son kullanıcının masaüstüne kopyalanır.

  4. Masaüstünden ExcelWorkbook.xlsx dosyasını açın.

Ayrıca bkz.

Görevler

Nasıl yapılır: uygulama ve dağıtım bildirimleri yeniden imzalamaya

Diğer Kaynaklar

Office Çözümlerini Dağıtma