확장명이 .dotx 인 파일을 사용해야하는 프로그램이 있습니다. 지금은 솔루션의 리소스로 사용하고 있습니다. 다음 코드를 사용하여 대신 "C : \ letterhead.dotx"를 직접 사용하여 '포함 된 리소스'파일을 사용하고 싶습니다. 나는 다음을 시도했다.VB.NET에서 .dotx 리소스를 어떻게 참조 할 수 있습니까? (Visual Studio Pro)
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
간단한 해결책은 없습니다. 파일을 임베디드 리소스로 만들면 EXE 파일을 컴파일합니다. exe를 디 컴파일하고 임베디드 리소스를 찾은 다음 해당 파일을 열려고하는 응용 프로그램 (Word와 같은)이 없습니다. 임베디드 리소스를 실제 파일에 작성한 다음 Word에서 열기 위해 해당 파일과 위치를 사용하면 작업이 조금 더 필요합니다. 이렇게하는 방법은 완전히 다른 문제입니다. 쉬운 일은 아니지만 상자, 독창성 및 Google 외부에서 조금 생각하면됩니다. – Steve