找不到资源程序集

时间:2014-09-25 13:46:51

标签: c# asp.net-mvc unit-testing

我正在尝试为我的MVC5应用程序创建单元测试,而我正在使用资源。我的问题是,当我执行测试时,它会抛出此异常。

  

System.Resources.MissingManifestResourceException:无法为指定的区域性文化或中性文化找到适当的资源。确保在编译时将“Resources.Ressources.resources”正确嵌入或链接到程序集“GestionSaisieExternaliséeV2”,或者所有所需的附属程序集都是可加载和完全签名的

我在控制器的操作中使用了资源。

[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
     get
     {
          if (object.ReferenceEquals(resourceMan, null))
          {
               global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Resources.Ressources", typeof(Ressources).Assembly);
               resourceMan = temp;
          }
          return resourceMan;
     }
}

VS解决方案项目:

  • MVC 5项目。
  • 单元测试项目。

2 个答案:

答案 0 :(得分:1)

解决。 资源文件应在文件属性中设置为“嵌入式资源”。

感谢你们所有人。

答案 1 :(得分:0)

我认为您需要公开您的资源类;见下图:

Make resources public.

另一件事是将InternalVisibleTo属性添加到MVC项目的AssemblyInfo.cs文件中。这将使测试程序集可以看到内部类型(默认访问修饰符),因此您可以从那里访问Resources.Something