Como: Remover extensões de código gerenciado a partir de documentos
Você poderá remover programaticamente o assembly de personalização de um documento ou pasta de trabalho que faz parte de uma personalização em nível de documento para Microsoft Office o Word ou Excel de Microsoft Office. Os usuários podem abrir os documentos e exibir o conteúdo, em seguida, mas qualquer interface de usuário personalizada (UI) que você adicionar os documentos não aparecerá e seu código não será executado.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para os seguintes aplicativos: Excel 2007 e Excel 2010; Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Você pode remover o assembly de personalização usando um da RemoveCustomization métodos fornecidos pelo Visual Studio Tools for Office runtime. Método usado depende se você deseja remover a personalização em tempo de execução (isto é, executando o código na personalização enquanto a palavra documento ou pasta de trabalho do Excel está aberta), ou se você deseja remover a personalização de um documento de fechado ou um documento que está em um servidor que não tenha de Microsoft Office instalado.
Para uma demonstração de vídeo relacionada, consulte Fazer como i: Anexar ou desanexar um Assembly do VSTO a partir de um documento do Word?.
Para remover o assembly de personalização em tempo de execução
Seu código de personalização, chame o Document.RemoveCustomization método (para Word) ou o Workbook.RemoveCustomization método (para o Excel). Este método deve ser chamado somente depois que a personalização não é mais necessária.
Onde você pode chamar esse método no seu código depende de como sua personalização é usada. Por exemplo, se os clientes usam os recursos da sua personalização até que estejam prontos para enviar o documento para outros clientes que precisam apenas o documento em si (e não a personalização), você pode fornecer algumas interfaces do usuário que chama RemoveCustomization quando o cliente clica proprietário. Como alternativa, se sua personalização preenche o documento com dados quando ele é o primeiro é aberto, mas a personalização não fornece outros recursos são acessados diretamente por clientes, você pode chamar RemoveCustomization assim sua personalização termina de inicializar o documento.
Para remover o assembly de personalização de documentos fechados ou um documento em um servidor.
Em um projeto que não exigem o Microsoft Office, como, por exemplo, um aplicativo de console ou um projeto Windows Forms, adicione uma referência a um dos seguintes assemblies:
Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll (se os destinos do projeto de .NET Framework 4).
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll (se os destinos do projeto a.NET Framework 3.5).
Adicione o seguinte Imports ou using à parte superior do seu arquivo de código.
Imports Microsoft.VisualStudio.Tools.Applications
using Microsoft.VisualStudio.Tools.Applications;
Chamar estática RemoveCustomization método de ServerDocument de classe e especifique o caminho do documento de solução para o parâmetro.
O exemplo de código a seguir pressupõe que você está removendo a personalização de um documento chamado WordDocument1.docx que está na área de trabalho.
Dim documentPath As String = System.Environment.GetFolderPath( _ Environment.SpecialFolder.Desktop) & "\WordDocument1.docx" Dim runtimeVersion As Integer = 0 Try runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath) If runtimeVersion = 3 Then ServerDocument.RemoveCustomization(documentPath) System.Windows.Forms.MessageBox.Show("The customization has been removed.") End If Catch ex As FileNotFoundException System.Windows.Forms.MessageBox.Show("The specified document does not exist.") Catch ex As IOException System.Windows.Forms.MessageBox.Show("The specified document is read-only.") Catch ex As InvalidOperationException System.Windows.Forms.MessageBox.Show("The customization could not be removed." & _ vbLf & ex.Message) End Try
string documentPath = System.Environment.GetFolderPath( Environment.SpecialFolder.Desktop) + @"\WordDocument1.docx"; int runtimeVersion = 0; try { runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath); if (runtimeVersion == 3) { ServerDocument.RemoveCustomization(documentPath); System.Windows.Forms.MessageBox.Show("The customization has been removed."); } } catch (FileNotFoundException) { System.Windows.Forms.MessageBox.Show("The specified document does not exist."); } catch (IOException) { System.Windows.Forms.MessageBox.Show("The specified document is read-only."); } catch (InvalidOperationException ex) { System.Windows.Forms.MessageBox.Show("The customization could not be removed.\n" + ex.Message); }
Compile o projeto e executar o aplicativo no computador onde você deseja remover a personalização. O computador deve ter o Visual Studio 2010 Tools for Office Runtime instalado.
Consulte também
Tarefas
Como: Anexar extensões de código gerenciado aos documentos
Conceitos
Gerenciamento de documentos em um servidor usando a classe ServerDocument