如何在VB.NET中引用.dotx资源?(视觉工作室专业版)
我有一个程序需要使用扩展名为.dotx的文件。现在我把它作为解决方案中的一个资源。使用下面的代码,而不是直接使用“C:\letterhead.dotx”,我想将我拥有的文件用作“嵌入式资源”。我尝试了以下方法如何在VB.NET中引用.dotx资源?(视觉工作室专业版),vb.net,vba,visual-studio-2013,ms-word,embedded-resource,Vb.net,Vba,Visual Studio 2013,Ms Word,Embedded Resource,我有一个程序需要使用扩展名为.dotx的文件。现在我把它作为解决方案中的一个资源。使用下面的代码,而不是直接使用“C:\letterhead.dotx”,我想将我拥有的文件用作“嵌入式资源”。我尝试了以下方法 Dim oWord As Word.Application Dim oDoc As Word.Document oWord = CreateObject("Word.Application") oWord.Visible =
Dim oWord As Word.Application
Dim oDoc As Word.Document
oWord = CreateObject("Word.Application")
oWord.Visible = False
'Works:
oDoc = oWord.Documents.Add("C:\Letterhead.dotx")
'Does not work:
oDoc = oWord.Documents.Add(My.Resources.Letterhead)
'Does not work:
oDoc = oWord.Documents.Add(My.Resources.ResourceManager.BaseName & "\Letterhead.dotx")
我知道所有这些都返回了错误的值,而不是我想要的。我只是不想强迫任何人,使用这个,在运行它之前把信笺文件放在他们计算机上的特定位置。我肯定有一个简单的解决办法,我只是不知道
解决方案:
对于所有同样存在此问题的人(只有我),您只需执行以下操作即可将嵌入文件写入C:\-
Try
File.WriteAllBytes("C:\Letterhead.dotx", My.Resources.Letterhead)
Catch ex As Exception
MessageBox.Show("Failed to write to C:\", "", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
您完全可以将Word文档存储在嵌入式资源的.NET程序集中,提取它是相当简单的。但是,如果要打开Word文档,步骤如下:
如果您想了解更多详细信息,请查看的答案。没有简单的解决方案。将文件作为嵌入式资源时,它会在EXE中编译该文件。世界上没有任何应用程序(如Word)会反编译您的exe并查找嵌入式资源,然后打开该文件。您需要做更多的工作,将嵌入式资源写入物理文件,然后使用该文件和位置在Word中打开。如何做到这一点是另一个问题。这并不容易,但只要有一点跳出框框的思考、独创性和谷歌就可以做到。工作起来很有魅力。我做了我自己的变化,因为我没有做C#,但那就是我做的!谢谢