C# Can';似乎找不到创建Word文档的正确语法
我正在寻找一个基本的控制台应用程序,创建一个新的Word文档,添加文本,然后保存到文件。起初我试图使用DocxNuget软件包,但我在某个地方读到它可能不再免费使用了。尝试使用该软件包时,我在尝试从头开始创建新的Docx文件时遇到了一个“找不到文件”错误,而在使用Microsoft.Office.Interop.Word尝试下面的代码时,我仍然会遇到相同的错误。我找到的每个在线解决方案都会返回相同的错误,所以我不确定我的问题是在引用中还是在一般情况下的文件访问中。提前谢谢你的帮助 错误: System.IO.FileNotFoundException:'无法加载文件或程序集'office,版本=15.0.0.0,区域性=neutral,PublicKeyToken=71e9bce111e9429c'。系统找不到指定的文件。' 项目文件:C# Can';似乎找不到创建Word文档的正确语法,c#,ms-word,docx,C#,Ms Word,Docx,我正在寻找一个基本的控制台应用程序,创建一个新的Word文档,添加文本,然后保存到文件。起初我试图使用DocxNuget软件包,但我在某个地方读到它可能不再免费使用了。尝试使用该软件包时,我在尝试从头开始创建新的Docx文件时遇到了一个“找不到文件”错误,而在使用Microsoft.Office.Interop.Word尝试下面的代码时,我仍然会遇到相同的错误。我找到的每个在线解决方案都会返回相同的错误,所以我不确定我的问题是在引用中还是在一般情况下的文件访问中。提前谢谢你的帮助 错误: Sys
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>Document_Generation</RootNamespace>
</PropertyGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Word.dll">
<Guid>00020905-0000-0000-c000-000000000046</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>7</VersionMinor>
<WrapperTool>tlbimp</WrapperTool>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
</COMReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="DocX" Version="1.6.0" />
</ItemGroup>
</Project>
Exe
netcoreapp3.1
文档生成
00020905-0000-0000-c000-0000000000 46
8.
7.
tlbimp
0
假的
如果您在Visual Studio中进行此操作(我建议这样做),我会执行以下操作(随意更改目录和文本):
必须向项目引用中添加两个Office互操作文件:
Office.dll
库表示。这是一个提供共享功能的Microsoft Office对象库
Exe
netcoreapp3.1
文档生成
00020905-0000-0000-c000-0000000000 46
8.
7.
tlbimp
0
假的
2DF8D04C-5BFA-101B-BDE5-00AA0044DE52
2.
8.
tlbimp
0
假的
例如,您可以尝试创建一个基于.Net framework的控制台应用程序示例,并尝试向Word添加COM引用。然后,您可以观察添加的所需引用(您还可以获取所需的互操作文件)
您可以在页面上阅读有关Office互操作程序集的详细信息。看起来您缺少名为
Office.dll的程序集。如果你愿意,你可以在GAC注册。或者,您需要添加对项目的引用,就像对word
的引用一样。虽然您有COM引用,但我使用常规DLL引用来Microsoft.Office.Interop.Word.DLL
Office。无法下载和使用库。Office应用程序必须安装在运行代码的计算机上。安装将在注册表中正确注册库。它还将在GAC中安装.NET PIA。Office“互操作”代码的执行依赖于能否运行应用程序。如果您想在不安装Office应用程序的情况下创建文档,请查看Office Open XML和Open XML SDK。我确实安装了word,但我在某个地方读到,当我安装它时,我应该选择一个选项来向计算机添加开发人员依赖项。我想这就是为什么我没有dll的原因。这并不能回答问题
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>Document_Generation</RootNamespace>
</PropertyGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Word.dll">
<Guid>00020905-0000-0000-c000-000000000046</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>7</VersionMinor>
<WrapperTool>tlbimp</WrapperTool>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
</COMReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="DocX" Version="1.6.0" />
</ItemGroup>
</Project>
File.Create("C:/test.docx").Dispose();
File.AppendAllText("D:/test.docx", "test text");
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>Document_Generation</RootNamespace>
</PropertyGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Word.dll">
<Guid>00020905-0000-0000-c000-000000000046</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>7</VersionMinor>
<WrapperTool>tlbimp</WrapperTool>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
</COMReference>
<COMReference Include="office.dll">
<Guid>2DF8D04C-5BFA-101B-BDE5-00AA0044DE52</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>8</VersionMinor>
<WrapperTool>tlbimp</WrapperTool>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
</COMReference>
</ItemGroup>
</Project>