0

我创建了一个带有资源 (.resx) 文件的 Windows 服务应用程序。现在我的问题是当我使用安装项目安装我的服务时。它似乎找不到我的 .resx 文件。我需要做什么才能将我的资源文件嵌入到我的程序中?

更新

修复。@UnhandledException 是正确的。这是解决问题的一种方法,但由于某种原因,它对我不起作用。我修复它的方法是在 Visual Studio 上显示我的项目中的所有文件。我浏览bin\debug. 我找到了实际上具有“.resources”扩展名的资源文件。我将它复制到c:\Program Files\my app\并瞧,它有效。这可能不是正确的方法,但这次我需要它。

谢谢,

4

2 回答 2

2

在资源 (.resx) 文件和资源中的每个文件的属性中将构建操作更改为嵌入式资源。

属性=> 构建操作 => 嵌入式资源

于 2012-04-21T06:59:07.147 回答
0

如果您正在运行 Windows 服务应用程序并需要访问资源,请将该资源标记为Build Action: Embedded Resource,并使用以下代码获取资源文件的绝对路径:

/// <summary>
/// This method seems a bit complicated for fetching a file's path,
/// but it's flexible enough to fetch a path for both console 
/// applications and service applications.
/// </summary>
/// <param name="relativePath">Relative path to a resource.</param>
/// <returns>Absolute path.</returns>
private string GetAppAbsolutePath(string relativePath)
{
    return Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), relativePath);
}

希望这可以帮助。

于 2013-08-08T23:04:42.073 回答