İ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
Dosya menüsünde Ekle'ye gelin ve sonra Yeni Proje'yi tıklayın.
Yeni Proje Ekle iletişim kutusunda, Yüklü Şablonlar bölmesinde, Windows'a tıklayın.
Şablonlar bölmesinde, Sınıf Kitaplığı'nı tıklatın.
Ad alanına FileCopyPDA yazın ve Tamam'ı tıklatın.
İçinde Çözüm Gezgini, tıklayın FileCopyPDA.
Üzerinde Proje menüsünde tıklatın Eklebaşvuru.
Başvuru Ekle iletişim kutusu görüntülenir.
Üzerinde .net sekmesinde, başvuruları Microsoft.VisualStudio.Tools.Applications.Runtime'a ve Microsoft.VisualStudio.Tools.Applications.ServerDocument'a ekleyin.
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;
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
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
Çözüm Gezgini'nde, FileCopyPDA projesine sağ tıklayın ve sonra Derle'yi tıklayın.
Çözüm Gezgini'nde, ExcelWorkbook projesine sağ tıklayın ve sonra Derle'ye tıklayın.
Çözüm Gezgini'nde ExcelWorkbook projesini sağ tıklayın ve Başvuru Ekle'yi tıklayın.
Başvuru Ekle iletişim kutusunda Projeler sekmesini tıklayın.
FileCopyPDA'i ve ardındanTamam'ı tıklayın.
Çözüm Gezgini'nde ExcelWorkbook projesini tıklayın.
Proje menüsünde, Yeni Klasör'ü tıklatın.
Data yazın ve Enter tuşuna basın.
Çözüm Gezgini'nde, Veri dosyasına tıklayın.
Proje menüsünden Varolan Öğe Ekle'yi tıklayın.
Varolan Proje Ekle iletişim kutusunda, ExcelWorkbook projesinin çıktı konumunu bulun.
ExcelWorkbook.xlsx'yi ve sonra da Ekle'yi tıklayın.
Çö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.
Özellikler penceresinde, Derleme Eylemi özelliğini İçerik, Çıktı Dizinine Kopyala özelliğini Yeniyse kopyala olarak değiştirin.
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
Açık c:\publish dosya Gezgini üzerinden dizin.
Application Files klasörünü, ardından ExcelWorkbook_1_0_0_0 klasörünü açın.
ExcelWorkbook.dll.manifest dosyasını bir metin düzenleyicisinde açın.
</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
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.
Visual Studio Komut istemini açın.
c:\publish\Application Files\ExcelWorkbook_1_0_0_0 dizinine geçin.
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.
c:\publish dizinine geçin.
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.
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
c:\publish dizinini test bilgisayarına kopyalayın.
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.
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.
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