假设您有一个类库项目,其中包含任何数量的补充文件,这些文件也需要包含在已编译的程序集中(例如,简单的文本文件,甚至是由程序集作为互操作层包装的传统非托管DLL).虽然将补充文件嵌入到程序集本身是相对简单的,但我们遇到这种情况,这是不可能的或者只是不合需要的.我们需要将它们作为"sidecar"文件(即文件旁边的文件,可能在相对于程序集的子目录中)
将这些文件添加到项目中并为指定的"复制到输出目录"指定适当的值似乎足以满足解决方案中完全独立的项目.但是,如果另一个解决方案中的单独项目添加了对程序集的引用,则它不会自动拾取其sidecar文件.项目中有没有办法以某种方式标记生成的程序集,以便引用程序集的任何内容都知道它需要包含相关的sidecar文件?你怎么做到这一点?
您可以使用 al.exe,但似乎还有一个 C# 编译器选项。您想要使用 /linkresource C# 编译器选项创建多文件程序集。说明在这里,但命令类似于:
csc /linkresource:N.dll /t:library A.cs
Run Code Online (Sandbox Code Playgroud)
其中 N.dll 是一个本机 DLL,无论托管程序集在哪里(包括进入 GAC),它都会在其中。我提供的链接中有非常清晰的描述。
| 归档时间: |
|
| 查看次数: |
1800 次 |
| 最近记录: |