如何将外部文件与程序集关联

iam*_*ael 8 visual-studio

假设您有一个类库项目,其中包含任何数量的补充文件,这些文件也需要包含在已编译的程序集中(例如,简单的文本文件,甚至是由程序集作为互操作层包装的传统非托管DLL).虽然将补充文件嵌入到程序集本身是相对简单的,但我们遇到这种情况,这是不可能的或者只是不合需要的.我们需要将它们作为"sidecar"文件(即文件旁边的文件,可能在相对于程序集的子目录中)

将这些文件添加到项目中并为指定的"复制到输出目录"指定适当的值似乎足以满足解决方案中完全独立的项目.但是,如果另一个解决方案中的单独项目添加了对程序集的引用,则它不会自动拾取其sidecar文件.项目中有没有办法以某种方式标记生成的程序集,以便引用程序集的任何内容都知道它需要包含相关的sidecar文件?你怎么做到这一点?

Guy*_*Guy 3

您可以使用 al.exe,但似乎还有一个 C# 编译器选项。您想要使用 /linkresource C# 编译器选项创建多文件程序集。说明在这里,但命令类似于:

csc /linkresource:N.dll /t:library A.cs
Run Code Online (Sandbox Code Playgroud)

其中 N.dll 是一个本机 DLL,无论托管程序集在哪里(包括进入 GAC),它都会在其中。我提供的链接中有非常清晰的描述。