Aracılığıyla paylaş


İzlenecek Yol: ClickOnce Yüklemesinden Sonra Bir Belgeyi Kullanıcı Bilgisayarına 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 2010 ve 2007 Microsoft Office sisteminin 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 anlatım aşağıdaki görevleri gösterir:

  • 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.

Ön Koşullar

Bu anlatımı tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:

-

Microsoft Office geliştirici araçlarını içeren bir Visual Studio 2010 sürümü. Daha fazla bilgi için bkz: [Office Çözümeri Geliştirmek İçin Bilgisayarı Yapılandırma](bb398242\(v=vs.100\).md).
  • Excel 2007 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 2010\Projects dizinine kaydedin. Daha fazla bilgi için bkz. Nasıl Yapılır: Visual Studio'da Office Projeleri Oluşturma.

    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. Çözüm Gezgininde, FileCopyPDA'i tıklayın.

  6. Proje menüsünde, Başvuru Ekle'yi tıklatın.

  7. Başvuru Ekle iletişim kutusunda .NET sekmesine aşağıdaki başvuruları ekleyin:

    • Eğer Excel projeniz .NET Framework 3.5'i hedefliyorsa başvuruları Microsoft.VisualStudio.Tools.Applications.Runtime.v10.0'a ve Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0'a ekleyin.

    • Eğer Excel projeniz .NET Framework 4'i hedefliyorsa 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.

      Not

      Dağıtım sonrası eylem için kaldırma adımı sırasında çalıştırılır.net Framework 3.5.

    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, dosya dosyasının en son sürümünü ekleyerek 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ünü ClickOnce Kullanarak Dağıtma.

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 uygulama bildirimi içeriğini bir kutu tüm içeriğini listeleyen bir ürün reçeteleri için benzer; bir uygulama bildirimi tüm ön koşul ve bağımlı derlemelerin listeler. Uygulama listesi Office çözüm için de uygulama düzeyinde eklentileri ve belge düzeyinde özelleştirmeleri için Office uygulaması tarafından yüklenmesi gereken derlemeler listeler.

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

  1. c:\publish klasörünü doğrudan Windows Explorer ile açın.

  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. <vstav3:entryPoint> öğesinin sınıf özniteliği için 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 2010\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 Bildirimlerini Yeniden İmzalama.

Kavramlar

Gelişmiş Office Çözümleri Dağıtımı

Diğer Kaynaklar

Office Çözümlerini Dağıtma

Değişiklik Geçmişi

Tarih

Geçmiş

Nedeni

Eylül 2010

Değiştirilen Studio 10\Projects %USERPROFILE%\Documents\Visual için %USERPROFILE%\Documents\Visual Studio 2010\Projects.

İçerik hata düzeltmesi.