?ng d?ng văn ph?ng không b? sau khi t? đ?ng hóa t? Visual Studio.Khách hàng NET

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 317109 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TRI?U CH?NG

Khi b?n t? đ?ng m?t ?ng d?ng Microsoft Office t? Microsoft Visual Basic.NET ho?c Microsoft Visual C#.NET, các ?ng d?ng văn ph?ng không ph?i b? khi b?n g?i các B? thu?c lá phương pháp.

NGUYÊN NHÂN

Khi Visual Studio.Các cu?c g?i NET COM m?t đ?i tư?ng t? qu?n l? M?, nó s? t? đ?ng t?o ra m?t Wrapper Callable Runtime (RCW). RCW marshals cu?c g?i gi?a các.NET ?ng d?ng và các đ?i tư?ng COM. RCW gi? m?t tham kh?o đ?m trên đ?i tư?ng COM. V? v?y, n?u t?t c? các tài li?u tham kh?o chưa phát hành vào RCW, các đ?i tư?ng COM không b? thu?c lá.

GI?I PHÁP

Đ? đ?m b?o r?ng các ?ng d?ng văn ph?ng quits, h?y ch?c ch?n r?ng r?ng m? t? đ?ng hóa c?a b?n đáp ?ng các tiêu chí sau:
  • Tuyên b? t?ng đ?i tư?ng như là m?t bi?n m?i. Ví d?, thay đ?i d?ng m? sau
    oBook = oExcel.Workbooks.Add()
    					
    đ?n sau đây:
    dim oBooks as Excel.Workbooks
    oBooks = oExcel.Workbooks
    oBook = oBooks.Add()
    					
  • S? d?ng System.Runtime.InteropServices.Marshal.ReleaseComObject khi b?n đ? k?t thúc b?ng cách s? d?ng m?t đ?i tư?ng. Decrements này các tham kh?o tính c?a RCW.
  • Đ? phát hành tài li?u tham kh?o đ? bi?n, h?y đ?t bi?n tương đương v?i Không có g? ho?c Null.
  • S? d?ng các B? thu?c lá phương th?c c?a đ?i tư?ng ?ng d?ng văn ph?ng b?o v?i máy ch? đ? D?ng l?i.

T?NH TR?NG

Đi?u này hành vi là do thi?t k?.

THÔNG TIN THÊM

Các bư?c đ? t?o l?i hành vi

  1. B?t đ?u Visual Studio.NET.
  2. Trên các T?p tin tr?nh đơn, nh?p vào M?i sau đó b?m D? án. Dư?i Visual Basic d? án, ch?n ?ng d?ng Windows và nh?p vào Ok. Form1 đư?c t?o ra theo m?c đ?nh.
  3. Thêm m?t tham chi?u đ?n các Microsoft Excel đ?i tư?ng thư vi?n. Đ? th?c hi?n vi?c này, h?y làm theo các bư?c sau:
    1. Trên các D? án tr?nh đơn, nh?p vào Thêm tài li?u tham kh?o.
    2. Trên các COM tab, xác đ?nh v? trí thư vi?n đ?i tư?ng cho Excel và b?m Ch?n.

      Cho Microsoft Excel 2002: Microsoft Excel 10,0 đ?i tư?ng thư vi?n

      Lưu ? N?u b?n không làm như v?y, khuyên r?ng b?n t?i v? và cài đ?t Microsoft Office XP chính Interop h?i (PIAs). Đ? bi?t thêm chi ti?t v? Office XP PIAs, nh?p vào s? bài vi?t sau đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
      328912Microsoft Office XP chính interop h?i đ?ng (PIAs) có s?n đ? t?i v?
      For Microsoft Office Excel 2003: Microsoft Excel 11,0 đ?i tư?ng thư vi?n
    3. Nh?p vào Ok trong các Thêm tài li?u tham kh?o h?p tho?i đ? ch?p nh?n c?a b?n l?a ch?n.
  4. Trên các Xem tr?nh đơn, nh?p vào H?p công c?, và sau đó kéo m?t Nút ki?m soát vào Form1.
  5. B?m đúp Button1. C?a s? m? cho các h?nh th?c xu?t hi?n.
  6. Thêm m? sau vào phía trên c?a Form1.vb:
    Imports Microsoft.Office.Interop
    					
  7. Thay th? m? sau trong c?a s? m?
        Private Sub Button1_Click(ByVal sender As System.Object, _
           ByVal e As System.EventArgs) Handles Button1.Click
        End Sub
    					
    v?i nh?ng đi?u sau:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oApp As New Excel.Application()
        Dim oBook As Excel.Workbook = oApp.Workbooks.Add
        Dim oSheet As Excel.Worksheet = oApp.ActiveSheet
    
        oSheet = Nothing
        oBook.Close(False)
        oBook = Nothing
        oApp.Quit()
        oApp = Nothing
    
        Debug.WriteLine("Sleeping...")
        System.Threading.Thread.Sleep(5000)
        Debug.WriteLine("End Excel")
    End Sub
    					
  8. Nh?n F5 đ? ch?y các ?ng d?ng.
  9. M? Windows Task Manager. Trong Visual Studio, hi?n th? các Đ?u ra c?a s? đ? xem các thông đi?p g? l?i. Nh?p vào nút l?nh và lưu ? r?ng m?t th? hi?n c?a Excel.exe xu?t hi?n trong các Quy tr?nh danh sách.
  10. Th? hi?n c?a Excel v?n ch?y trong danh sách công vi?c th?m chí sau khi ?ng d?ng đ? k?t thúc ng?. Đóng h?p tho?i và lưu ? r?ng Excel không c?n xu?t hi?n trong các Quy tr?nh danh sách.
  11. Khi b?n th?c hi?n các bư?c trong ph?n "Gi?i quy?t", các ?ng d?ng văn ph?ng ra kh?i sau khi nó b?n phát hành cu?i cùng bi?n. Thay th? các ch?c năng trong bư?c 5 v?i đo?n m? sau:
      Private Sub NAR(ByVal o As Object)
        Try
          System.Runtime.InteropServices.Marshal.ReleaseComObject(o)
        Catch
        Finally
          o = Nothing
        End Try
      End Sub
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oApp As New Excel.Application()
        Dim oBooks As Excel.Workbooks = oApp.Workbooks
        Dim oBook As Excel.Workbook = oBooks.Add
        Dim oSheet As Excel.Worksheet = oApp.ActiveSheet
    
        NAR(oSheet)
        oBook.Close(False)
        NAR(oBook)
        NAR(oBooks)
        oApp.Quit()
        NAR(oApp)
    
        Debug.WriteLine("Sleeping...")
        System.Threading.Thread.Sleep(5000)
        Debug.WriteLine("End Excel")
    End Sub
    					
N?u b?n đang s? d?ng Visual C#.NET, tham kh?o các m? cho các NAR() ch?c năng:
private void NAR(object o)
{
    try 
    {
        System.Runtime.InteropServices.Marshal.ReleaseComObject(o);
    }
    catch {}
    finally 
    {
        o = null;
    }
}

Gi?i đáp th?c m?c

Lưu ? r?ng n?u b?n làm theo các bư?c đư?c mô t? trong các "Bư?c đ? tái s?n xu?t hành vi" ph?n, và các máy ch? v?n c?n không t?t xu?ng, b?n có th? s? d?ng các GC.Collect() phương pháp và các GC.WaitForPendingFinalizers() phương pháp sau khi b?n phát hành các đ?i tư?ng cu?i cùng. B?i v? th?i gian th?c hi?n b? sưu t?p rác v? RCW, các GC.Collect() phương pháp bu?c các b? thu rác đ? ch?y và có th? phát hành b?t k? tài li?u tham kh?o RCW v?n c?n. Các GC.Collect() phương pháp c? g?ng đ? đ?i l?i t?i đa b? nh? có s?n. Lưu ? r?ng Đi?u này không đ?m b?o r?ng t?t c? b? nh? s? đư?c khai hoang.

Thu?c tính

ID c?a bài: 317109 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
T? khóa: 
kbautomation kbprb kbmt KB317109 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:317109

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com