【发布时间】:2011-01-25 23:42:37
【问题描述】:
这里有很多关于这个的帖子,我正在使用this code from another SO post 并在我的 Main() 方法中放置一个委托分配。其他帖子都没有直接回答我的问题。
我已将我的第三方程序集作为资源嵌入,但是当我启动应用程序时:
- 我得到一个带有 FileNotFoundException 内部的 TypeInitializationException。它试图在文件系统上找到程序集并失败。
- 它永远不会到达分配 AssemblyResolve 事件处理程序的 Main 方法
我的 Resources.resx 中嵌入了两个程序集引用,一个是第三方工具(命令行解析器),另一个是应用程序所在的库文件。
也许这对于控制台应用程序是不可能的?似乎不太可能,但我看不到解决办法。
回复:ILMerge 等:我想完全在代码中完成这项工作,而不涉及任何工具。原因:我不希望存储库中的源代码需要其他团队成员安装他们可能还没有的工具。如果这不可能,那么 ILMerge 看起来是下一个最佳选择。
【问题讨论】:
-
ILMerge 与 C# 和 Visual Studio 本身相比,作为第一方工具有何不同?
-
@Chris:好点子。现在编辑。不过,如果我可以在不涉及 ILMerge 的情况下完成这项工作,我更愿意这样做。这似乎是合理的。
标签: c# assemblies console-application assembly-resolution