Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何增加C#装配尺寸?_C#_.net_Visual Studio_Dll - Fatal编程技术网

如何增加C#装配尺寸?

如何增加C#装配尺寸?,c#,.net,visual-studio,dll,C#,.net,Visual Studio,Dll,我有一个类库项目,在磁盘上是14,0 KB。是否可以通过添加垃圾字节来增加程序集文件的大小 例如: private byte[] junk = new byte[1500]; 将在内存中分配1500字节,但我希望它们保留在任何PE模块部分(如.data部分) 我知道C#可以与MSIL一起工作,但是否有保留服务器物理内存的选项 为什么我需要这个?。一位客户要求我在功能和他能找到的每一个细节(包括文件大小、名称、版本等)上模仿他以前的开发人员提供的库。我向他解释说,任何有足够知识的人都会发现该库不

我有一个类库项目,在磁盘上是14,0 KB。是否可以通过添加垃圾字节来增加程序集文件的大小

例如:

private byte[] junk = new byte[1500];
将在内存中分配1500字节,但我希望它们保留在任何PE模块部分(如.data部分)

我知道C#可以与MSIL一起工作,但是否有保留服务器物理内存的选项

为什么我需要这个?。一位客户要求我在功能和他能找到的每一个细节(包括文件大小、名称、版本等)上模仿他以前的开发人员提供的库。我向他解释说,任何有足够知识的人都会发现该库不是原始库,但他坚持要在每个细节上匹配它


我知道他为什么需要这个,但那不是主题。

最简单的方法可能是添加嵌入式资源。

若要扩大程序集大小,可以向资源中添加图像(双击resosurces.resx)或添加引用

我建议你添加一些假图片,这是最不坏的解决方案:-)

比如说


理论上,因为.Net Dll和Exe是标准的PE文件,遵循microsoft PE文件格式

您应该能够只将0个字节填充到文件的末尾,因为规范涉及到块大小和指针偏移量的使用,所以在加载时不考虑文件的末尾,并且在不修改任何大小或偏移量的情况下将0个字节追加到文件的末尾应该不会影响dll的加载/引用

不过这只是一个理论。我没有试过/测试过这个

如果这样做有效,您可以编写一个简单的控制台应用程序,将文件填充x 0字节,类似于

Console.Write("Enter File Name To Pad: ");
string fileName = Console.ReadLine();
Console.Write("Enter Number of Bytes to Pad: ");
int bytesToPad = Int.Parse(Console.ReadLine());
using (FileStream fs = new FileStream(fileName, FileMode.Append, FileAccess.Write, FileShare.None))
{
    byte[] emptyBytes = new byte[bytesToPad];
    fs.Write(emptyBytes, 0, emptyBytes.Length);
}

如果这样做有效,您可以修改它,从传递到主函数的参数中获取文件名和字节,然后在Visual Studio中将其设置为生成后事件,在代码生成完成后运行。

可能与资源或其他程序集合并?我支持此概念。只需制作一个伪位图,添加所需的大小,并将其作为嵌入资源添加即可(您可能需要减去一些字节来说明嵌入资源的代码/填充。我只是添加一个文本文件来填充所需的文件,并将其标记为嵌入资源。这是一个非常蹩脚的解决方案,我希望我能够知道如何告诉MSIl保留物理大小。但现在这是可行的