Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 管理分散在目录树中的资源_C#_.net_Visual Studio_Resources_Embedded Resource - Fatal编程技术网

C# 管理分散在目录树中的资源

C# 管理分散在目录树中的资源,c#,.net,visual-studio,resources,embedded-resource,C#,.net,Visual Studio,Resources,Embedded Resource,我有一个由几个项目组成的.Net解决方案。其中一个项目包含WPF项目所依赖的所有业务逻辑 业务逻辑项目使用一组资源文件实现不同的功能 以前这两个项目只有一个,所以我当时做的是将所有这些资源文件都设置为“复制到输出目录”为true。正在运行的应用程序按如下方式组成文件路径 static readonly string ResourceFilePath = Path.Combine( Path.GetDirectoryName(Assembly.GetExecutingAs

我有一个由几个项目组成的.Net解决方案。其中一个项目包含WPF项目所依赖的所有业务逻辑

业务逻辑项目使用一组资源文件实现不同的功能

以前这两个项目只有一个,所以我当时做的是将所有这些资源文件都设置为“复制到输出目录”为true。正在运行的应用程序按如下方式组成文件路径

static readonly string ResourceFilePath = 
    Path.Combine(
        Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
        "resources\\thefile.ext");
我知道我可以使用资源,除了扩展的消失和替换外,这一切都很好。带有\的字符

然而,也有一些时候,我的目录树中保存着一堆文件。正在运行的应用程序将整个内容复制到某个临时位置

与单个资源文件一样,我将所有文件都设置为复制到VisualStudio中的输出目录。正在运行的应用程序将组成目录的路径,然后使用该路径递归地将所有内容复制到临时位置

static readonly string ResourceFilesPath = 
    Path.Combine(
        Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
        "resources\\somedirectory\\");

public void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
...
在VisualStudio中调试时,以及在安装了应用程序的情况下,所有这些都工作得很好。因为文件在磁盘上,所以它们是单独的版本控制

我的问题是在第二种情况下复制目录和文件结构。我无法使用资源实现这一点,现在业务逻辑位于单独的项目中,资源文件不会复制到前端项目的输出目录中

我的问题是:是否有更好的方法来处理某些目录树中的许多资源?

也许您可以使用GetAssembly或GetEntryAssembly来获取对WPF程序集的引用,以便该位置正确地返回所需的输出路径


或者,您可以为业务逻辑项目设置生成事件,以将资源复制到WPF项目的输出路径。

我确实选择在前端项目上使用生成事件。我只是需要重新磨练我的xcopy技能;-。