【问题标题】:How to embed .NET modules into an independent assembly?如何将 .NET 模块嵌入到独立程序集中?
【发布时间】:2010-10-14 22:56:25
【问题描述】:

我正在尝试从网络模块自动生成程序集。 我尝试在此命令行中使用“al.exe”工具:al module1.netmodule module2.netmodule /target:library /out:assembly.dll。 我的问题是我的程序集没有嵌入我的网络模块,而只是引用它们: - 如果我用“ildasm.exe”工具打开我的程序集,我只能看到清单 - 如果我在一个新的 Visual Studio 项目中导入我的程序集,除非我复制程序集旁边的两个网络模块,否则它不起作用

我尝试了“ILMerge”工具,它似乎在我的简单示例中运行良好:“ildasm.exe”工具显示了正确的类,并且该程序集可以在 Visual Studio 项目中使用。但是我害怕在我的项目中进一步面临一些限制 (WPF)。

我的问题是: - 有没有办法使用“al.exe”或“csc.exe”从网络模块生成一个独立的程序集? - 如何真正将网络模块嵌入到程序集中而不仅仅是引用它们? - 我必须使用“ILMerge.exe”吗? - “al.exe”的真正用途是什么? “csc.exe”不能使用“/addmodule”选项做同样的事情吗?

【问题讨论】:

  • 呃,你为什么使用 .netmodules?这能解决什么问题?这个问题的真正意义是什么?

标签: .net assemblies al.exe


【解决方案1】:

您是否尝试过 Link.exe - 它可以胜任。您可以在此处找到有关链接器的更多详细信息:

http://msdn.microsoft.com/en-us/library/y0zzbyt4(v=vs.71).aspx

链接工具作为 Visual Studio 的一部分安装。在我的机器上,Link.exe 安装在:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64

适合我的命令结构如下所示:

LINK             = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\Link.exe"
LIBPATH1         = "$(PROGRAMFILES)\Microsoft Visual Studio 8\SDK\v2.0\lib"
LIBPATH2         = "$(PROGRAMFILES)\Microsoft SDKs\Windows\v7.0A\Lib"

$(LINK) /LIBPATH:$(LIBPATH1) /LIBPATH:$(LIBPATH2) /DLL /nologo /LTCG /out:$(DLL_NAME).dll $(EXT_MODULE1) $(EXT_MODULE2) $(EXT_MODULE3) ... 

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 2015-06-13
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    相关资源
    最近更新 更多