我有一个包含多个项目的.Net解决方案。其中一个项目包含所有业务逻辑,取决于WPF项目。
业务逻辑项目使用一堆资源文件来实现不同的功能。
以前这两个项目只有一个,所以我所做的就是将所有这些资源文件设置为“复制到输出目录”为true。正在运行的应用程序按如下方式组成文件路径。
static readonly string ResourceFilePath =
Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
"resources\\thefile.ext");
我知道我可以使用资源并且工作正常(扩展程序消失,.
字符替换为_
)。
但是,有时候我的目录树中还有一堆文件。正在运行的应用程序将整个事件复制到一些临时位置。
与单个资源文件一样,我将所有文件都设置为复制到Visual Studio中的输出目录。正在运行的应用程序将组成目录的路径,然后使用该路径以递归方式将所有内容复制到临时位置。
static readonly string ResourceFilesPath =
Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
"resources\\somedirectory\\");
public void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
...
在Visual Studio中进行调试时,以及安装了应用程序时,这一切都运行良好。因为文件在磁盘上,所以它们都是受版本控制的。
我的问题在于我复制目录和文件结构的第二种情况。我无法使用资源,现在业务逻辑位于单独的项目中,资源文件不会复制到前端项目的输出目录中。
我的问题是:有没有更好的方法来处理某些目录树中的许多资源?
答案 0 :(得分:0)
也许您可以使用 GetAssembly 或 GetEntryAssembly 来获取对WPF程序集的引用,以便Location正确返回所需的输出路径?
或者您可以为业务逻辑项目设置构建事件,以将资源复制到WPF项目的输出路径。