如何将构建的程序集复制到项目资源文件夹中?

时间:2016-05-10 17:56:32

标签: c# .net

在我的项目的Resources文件夹中,我的解决方案中有许多与其他程序集不同的DLL。这些DLL用作嵌入式资源,因此我可以拥有一个EXE而无需拥有所有DLL的本地副本。我希望能够做的是每次构建我的整个解决方案时都更新它们。例如,如果我有AssemblyOne / bin / x86 / Debug / Foo.dll,我希望每当我构建项目时DLL总是复制到LocalAssembly / Resources / Foo.dll。

有一种简单的方法吗?我正在查看构建后事件宏,但是没有一个能够直接引用我的" LocalAssembly",这不是解决方案目录。另外,我不确定如何编写新的自定义后期构建命令,以便新复制的DLL不会是对本地计算机的绝对引用。谢谢!请发表评论以获取更多信息,我将编辑问题。

1 个答案:

答案 0 :(得分:1)

您无需在后期制作活动中仅访问解决方案文件夹。后构建脚本使用编译器运行时的任何权限运行。由于在Visual Studio中,事物经常以管理员权限运行,因此您可以访问整个文件系统。因此,如果您想要复制资源,您只需要假设您正在构建目标目录中启动xcopy调用。从那里,您可以使用普通路径导航。因此,例如,如果您需要上升三个级别然后进入目录LocalAssemblies,则复制命令看起来像xcopy Foo.dll ../../../LocalAssemblies