您是否添加了对WindowsBase 的引用?
VS 2019 / VS 2017:
在 VS 菜单中,
- 点击项目
- 选择添加参考...
- 点击程序集
- 检查 WindowsBase
- 点击确定
另见:How to include the reference of DocumentFormat.OpenXml.dll on Mono2.10?
如果您正在寻找最新版本,您可以查看:
What's new in .NET 5
What is .NET Framework
Download .NET, .NET Core, and .NET Framework
Github:Open-XML-SDK
NuGet:DocumentFormat.OpenXml
既然你说你是一个“相当新的开发者”,下面是一些可能对你有用的信息。
ildasm
如果您有兴趣查看 .NET DLL 文件或 .NET .exe 文件中使用了哪些程序集,可以使用 Windows Kit 中的ildasm.exe。
注意:SDK 可以在%ProgramFiles(x86)%\Microsoft SDKs\Windows\ 中找到(例如:C:\Program Files (x86)\Microsoft SDKs\Windows)
ildasm.exe 可以在以下一个或多个位置找到(假设 SDK 安装在默认位置):
赢得 10:
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 工具
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 工具
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 工具
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\x64
...
赢 8.1:
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 工具
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64
Win 7:
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 工具
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\x64
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\
- `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\x64
运行 ildasm.exe
- 双击
ildasm.exe 运行它(或打开cmd 窗口并输入ildasm.exe)
- 点击文件
- 选择打开
- 选择您的 DLL 文件或 .exe 文件(例如:TestDLL35.dll)
- 双击MANIFEST在新窗口中打开它
您会看到类似以下内容:
...
当您看到:.assembly extern <name>(例如:.assembly extern System.Core)时,这指定了所需的程序集。查看大括号内的.ver 以查看正在使用的程序集版本。对于 .NET 程序集,这是该库的 .NET 版本(例如:3:5:0:0),表明使用了 .NET 3.5。
如果查看 .assembly DocumentFormat.OpenXml 的“.ver”,则版本显示为 2:0:5022:0,即版本 2.0.5022.0。
NuGet 包
这里有一些关于 NuGet 包的信息,如果你安装了一个(在家)。如果安装了 NuGet 包,可以在 %UserProfile%\.nuget\packages 中找到它。例如,最新的 NuGet 包 DocumentFormat.OpenXml,可以在 C:\Users\<username>\.nuget\packages\open-xml-sdk\<version>\lib\<.NET version> 中找到(例如:C:\Users\TestUser\.nuget\packages\open-xml-sdk\2.9.1\lib\net46)。 OpenXml 版本 2.0,可以在 NuGet 包 DocumentFormat.OpenXmlSDK (C:\Users\\.nuget\packages\documentformat.openxmlsdk\2.0.0\lib\Net35) 中找到
在 Visual Studio 中,以下设置确定是否将 .NuGet 包复制到本地项目文件夹:
在 VS 菜单中:
- 点击工具
- 选择选项
- 展开 NuGet 包管理器
- 点击常规
- 在包管理下,查看默认包管理格式的值。
注意:当指定Packages.config,并且在你的项目中安装了一个.NuGet包,它会被下载到%UserProfile%\.nuget\packages\<NuGet package name>然后复制到你的解决方案文件夹(或项目文件夹)到名为“包”的文件夹。如果指定了 PackageReference,.NuGet 包将安装在您的项目中,并将下载到您的项目将引用它的%UserProfile%\.nuget\packages\<NuGet package name>,从而确保您的所有项目都使用相同版本的NuGet 包(它不会被复制到您的解决方案文件夹/项目文件夹)。 .csproj 文件中的某些设置也有所不同。
您上面列出的文件可能来自 NuGet 包 DocumentFormat.OpenXmlSDK (v.2.0.0),它看起来需要 .NET 3.5。 OpenXml 的最新/最新 NuGet 包是 DocumentFormat.OpenXml (v.2.12.1) 和 .NET 3.5、.NET 4.0 和 .NET 4.6 的 DLL。
见Package references (PackageReference) in project files和Migrate from packages.config to PackageReference