如何在 Visual Studio 2015 中使用资源文件
How to use a resource file in Visual Studio 2015
我正在为我的 ASP5 MVC6 应用程序创建集成测试 (网络 class 库项目)。我想添加一个带有原始 SQL 的资源文件到数据库准备的测试项目中。
我想使用很好的旧资源 (.resx)。但我在 add new item
项目的菜单中不可用。
我找到了 answer pointing to a github repo。我猜这是他阅读文件的地方:
using (var stream = FileProvider.GetFileInfo("compiler/resources/layout.html").CreateReadStream())
using (var streamReader = new StreamReader(stream))
{
return streamReader.ReadToEnd().Replace("~", $"{basePath}/compiler/resources");
}
我尝试在 TestHelper class.
的 测试助手 项目中使用 System.IO.File.ReadAllText("compiler/resources/my.sql")
当我在我的实际测试项目中使用 TestHelper class 时,它正在寻找测试项目目录中的文件。
TestProject/compiler/resources/my.sql
插入 TestHelperProject/compiler/resources/my.sql
我可以想出几个解决方法。但是我想以正确的方式去做。最好像我在 resx 文件中做的那样:
string sql = Resources.MySql;
有什么建议吗?
编辑
项目类型
可用项目
有点复杂,因为没有工具支持,但它是可行的:
- 创建一个
resx
文件或从其他地方复制它,例如经典 C# 项目
- 如果您可以使用
sake
作为构建系统,那么您可以使用我们 ASP.NET 团队使用的相同目标:https://github.com/aspnet/Universe/blob/dev/build/_k-generate-resx.shade 否则,您需要实施一些东西在您自己的构建脚本中类似
- 放置资源
compiler/resources
。如果将它们放在任何其他文件夹下,则将它们包含在项目中 json(如 here)
- 使用清酒构建然后使用 dnx 构建。您的资源应该作为强类型对象可用
我正在为我的 ASP5 MVC6 应用程序创建集成测试 (网络 class 库项目)。我想添加一个带有原始 SQL 的资源文件到数据库准备的测试项目中。
我想使用很好的旧资源 (.resx)。但我在 add new item
项目的菜单中不可用。
我找到了
using (var stream = FileProvider.GetFileInfo("compiler/resources/layout.html").CreateReadStream())
using (var streamReader = new StreamReader(stream))
{
return streamReader.ReadToEnd().Replace("~", $"{basePath}/compiler/resources");
}
我尝试在 TestHelper class.
的 测试助手 项目中使用System.IO.File.ReadAllText("compiler/resources/my.sql")
当我在我的实际测试项目中使用 TestHelper class 时,它正在寻找测试项目目录中的文件。
TestProject/compiler/resources/my.sql
插入 TestHelperProject/compiler/resources/my.sql
我可以想出几个解决方法。但是我想以正确的方式去做。最好像我在 resx 文件中做的那样:
string sql = Resources.MySql;
有什么建议吗?
编辑
项目类型
可用项目
有点复杂,因为没有工具支持,但它是可行的:
- 创建一个
resx
文件或从其他地方复制它,例如经典 C# 项目 - 如果您可以使用
sake
作为构建系统,那么您可以使用我们 ASP.NET 团队使用的相同目标:https://github.com/aspnet/Universe/blob/dev/build/_k-generate-resx.shade 否则,您需要实施一些东西在您自己的构建脚本中类似 - 放置资源
compiler/resources
。如果将它们放在任何其他文件夹下,则将它们包含在项目中 json(如 here) - 使用清酒构建然后使用 dnx 构建。您的资源应该作为强类型对象可用