我想有一个资源类库并在另一个最测试类库中测试它。这是我的项目。(我的resx文件在Resources文件夹中)
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Microsoft.AspNetCore.Mvc.DataAnnotations": "1.0.1"
},
"buildOptions": {
"embed": {
"include": [ "Resources/PS.ModelBase.Models.Person.fa.resx" ]
}
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
这是我的测试方法:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Resources;
using System.Threading.Tasks;
namespace PS.ModelBaseTest
{
[TestClass]
public class PersonTest
{
[TestMethod]
public void FullNameValidateNullFirstName()
{
ResourceManager rm = new ResourceManager(typeof(PS.ModelBase.Models.Person));
string test = rm.GetString("Fisrt Name", new System.Globalization.CultureInfo("fa-IR"));
Assert.AreEqual("Fisrt Name", test);
}
}
}
当我运行测试时,我有这个错误:
找不到适合指定区域性或中性文化。确保" ps。modelbase。models。person。resources"正确嵌入或链接到组装"PS.ModelBase"在编译时,或所需的所有附属程序集
我该怎么办?
َ更新:
Ok。我通过将resx插入Models文件夹(Person类在其中)并将resx文件重命名为类名(如Person.en.resx)来解决我的问题。与项目无关。Json:
{
"dependencies": {
"NETStandard.Library": "1.6.0",
"Microsoft.AspNetCore.Mvc.DataAnnotations": "1.0.1"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
},
"version": "1.0.0-*"
}
但我面临另一个问题,我想保持我的resx文件在资源文件夹,而不是在模型文件夹!如何在资源文件夹中嵌入resx文件到person类?
我得到第二个问题。事实上,资源文件和类必须在同一个域中
使用以下两个资源作为参考:
Github问题:项目更新。json模式
项目。json参考
根据所讨论的项目文件,尝试
- "includeFiles"字符串/string []
要包含的文件路径列表。这些路径位于项目文件夹中。这个列表有一个更高的优先级高于包含和排除globing模式,因此是一个文件这里列出的和排除globing模式中的仍然是包括在内。默认为none。
"buildOptions": {
"embed": {
"includeFiles": [ "Resources/PS.ModelBase.Models.Person.fa.resx" ]
}
}
只对应一个资源文件,或者
- "包括"字符串/string []
文件的文件globing模式列表包括。模式植根于项目文件夹。默认为没有。
"buildOptions": {
"embed": {
"include": [ "Resources" ]
}
}
表示Resources
文件夹的内容