假设您有一个类库项目,其中包含任意数量的补充文件,这些文件也需要包含在已编译的程序集中(例如,简单的文本文件,甚至是由程序集包装为互操作层的遗留非托管 DLL)。将补充文件嵌入到程序集本身是 relatively straightforward ,我们有这样的情况,这是不可能的或只是不受欢迎的。我们需要将它们作为“sidecar”文件(即程序集旁边的文件,可能位于与程序集相关的子目录中)
将这些文件添加到项目中,并为“复制到输出目录”指定适当的值,这对于在解决方案中完全独立的项目来说似乎就足够了。但是,如果另一个解决方案中的单独项目添加了对程序集的引用,则它不会自动拾取其边车文件。项目中有没有办法以某种方式标记生成的程序集,以便引用程序集的任何内容也知道它需要包含关联的边车文件?你怎么做到这一点?
最佳答案
您可以使用 al.exe,但似乎还有一个 C# 编译器选项。您想使用/linkresource C# 编译器选项创建多文件程序集。说明是here ,但命令与此类似:
csc /linkresource:N.dll /t:library A.cs
其中 N.dll 是一个 native DLL,它会出现在托管程序集的任何地方(包括进入 GAC)。我提供的链接中有一个非常清晰的描述。
关于visual-studio - 如何将外部文件与程序集关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/782395/