在Windows 2012上找不到resx中引用的资源文件

时间:2016-03-04 14:57:29

标签: c# embedded-resource windows-server-2012 class-library

我有一个类库dll,其中嵌入了一个文件作为Resources.resx中引用的资源。

    internal class Resources {
        internal static byte[] LicenseFile {
            get {
                object obj = ResourceManager.GetObject("LicenseFile", resourceCulture);
                return ((byte[])(obj));
            }
        }
    }

此库由多个应用程序引用,例如Windows服务。

这在本地Windows 7计算机或旧版Windows Server 2008上没有问题。

但是该服务无法在Windows Server 2012中启动,因为它找不到该文件。

系统事件日志显示时抛出

System.IO.FileNotFoundException

更新

我打印出了栈跟踪,似乎无法找到所需的dll。它根本不是资源文件。

无法加载文件或程序集“LeadTools.dll”或其中一个依赖项。找不到模块。

Dateiname: 'Leadtools.dll'
   at MyClassLibrary.Utils.InitLeadTools()
   at MyService.Logic.Program.Main(String[] args) 

1 个答案:

答案 0 :(得分:1)

.NET 4.0的LEADTOOLS二进制文件需要重新分发Microsoft Visual C ++ 2010运行时文件。

Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)

Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)