在我的项目的Resources文件夹中,我的解决方案中有许多与其他程序集不同的DLL。这些DLL用作嵌入式资源,因此我可以拥有一个EXE而无需拥有所有DLL的本地副本。我希望能够做的是每次构建我的整个解决方案时都更新它们。例如,如果我有AssemblyOne / bin / x86 / Debug / Foo.dll,我希望每当我构建项目时DLL总是复制到LocalAssembly / Resources / Foo.dll。
有一种简单的方法吗?我正在查看构建后事件宏,但是没有一个能够直接引用我的" LocalAssembly",这不是解决方案目录。另外,我不确定如何编写新的自定义后期构建命令,以便新复制的DLL不会是对本地计算机的绝对引用。谢谢!请发表评论以获取更多信息,我将编辑问题。
答案 0 :(得分:1)
您无需在后期制作活动中仅访问解决方案文件夹。后构建脚本使用编译器运行时的任何权限运行。由于在Visual Studio中,事物经常以管理员权限运行,因此您可以访问整个文件系统。因此,如果您想要复制资源,您只需要假设您正在构建目标目录中启动xcopy
调用。从那里,您可以使用普通路径导航。因此,例如,如果您需要上升三个级别然后进入目录LocalAssemblies
,则复制命令看起来像xcopy Foo.dll ../../../LocalAssemblies
。