gpt4 book ai didi

c# - WindowsBase.dll 静态位置

转载 作者:可可西里 更新时间:2023-11-01 11:48:12 32 4
gpt4 key购买 nike

我正在使用 OpenXML SDK 将数据写入 excel 文件。现在,这在我的开发机器上运行良好。

上周,我们将代码带到生产服务器,正如预期的那样,它没有安装 OpenXML DLL。为了使其正常工作,我需要在服务器上安装两个 DLL - 1. DocumentFormat.OpenXml.dll 和 2. Windowsbase.DLL。我在C盘创建了一个文件夹,把这些DLL放在里面。假设我将它们放在文件夹 C:\OpenXML

出于某种原因,我的解决方案中对 DocumentFormat.OpenXml.dll 的引用正确指向 C:\OpenXML\DocumentFormat.OpenXml.dll 但 WindowsBase 指向位置 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\WindowsBase.dll。我从我的 DEV 机器上检查了 location 属性。然后我在 C 驱动器中快速搜索 WindowsBase,它显示了该 DLL 的大量副本。所以我尝试一个接一个地添加它们,但 WindowsBase 仍然指向 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\WindowsBase.dll。在 DEV 工作站上,它工作正常。但是,在服务器上,位置 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\WindowsBase.dll 不存在,我的解决方案失败了。

不确定为什么 WindowsBase 总是只指向一个静态位置。如果有灵 active ,我可以将它放在服务器的某个文件夹中并毫无问题地引用它(就像我对其他库 DocumentFormat.OpenXML.DLL 所做的那样)。有什么办法解决这个问题吗?

最佳答案

我的问题出在其他地方。这与我加载的 DocumentFormat.OpenXML.dll 版本有关。我试图在 .NET 4 中使用适用于 .NET 3.5 的 DLL。

最初我对 WindowsBase 的理解是错误的。 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\被 Visual Studio 用来引用共享库。在没有 Visual Studio 的服务器上,解决方案将指向 GAC。因此,如果该库存在于 GAC 中就足够了。

以下摘自 Simon 在 Missing Referenced Assemblies Folder for .NET 4.0 的回答对此进行了解释。

Reference Assemblies folder is used with Visual Studio. While the actual deployed application will use the GAC in c:\Windows\Microsoft.Net\Assembly. I am assuming you didn't install Visual Studio on your server, therefore you wouldn't have the Reference Assemblies Folder.

了解这一点有助于我解决问题。希望这可以帮助别人。

关于c# - WindowsBase.dll 静态位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38502608/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com