我有办法将资源插入另一个程序集的清单吗?
我一直在尝试使用MSBuild和ILMerge,但显然由程序集链接器创建的资源程序集无法与ILMerge合并,看起来像ILMerge不能只进行资源合并。
al /out:Resources.dll /embed:Test.txt,Resources.Test
ilmerge只会产生错误
ILMerge.Merge: Could not load assembly from the location 'Resources.dll'
答案 0 :(得分:2)
好的,我确实得到了答案,我的ILMerge版本一定是错误的......
我使用了C#类模板.cs文件并以最简单的方式编译了
> csc /target:library Class1.cs
然后我使用Windows SDK的Assembly Linker部分创建一个简单的资源程序集(更快)
> al /out:TextFile1.dll /embed:TextFile1.txt
这最后一部分失败了一个愚蠢的空引用异常,上次我试过这个。但就在此刻,它就像一个魅力。
> ilmerge /out:Merged.dll Class1.dll TextFile1.dll
您可以使用ildasm
> ildasm /text Merged.dll
...
.mresource public TextFile1.txt
{
// Offset: 0x00000000 Length: 0x00000003
}
......就是这样!
我使用它在构建过程中将构建后的东西注入到程序集中。例如SVN日志信息。这样我就可以跟踪二进制文件到特定版本和人员。