2016-08-22 233 views
1

我使用C#开发了一个小型项目,并使所有工作都完美无缺。 唯一的问题是,这个应用程序将定期通过电子邮件发送,因此我试图将所有文件组装为一个可执行文件。用户只需打开并查看一个可执行文件,它将加载所需的文件并启动应用程序。将文件打包成一个可执行文件(C#)

该应用程序不使用任何外部库。唯一的.dll文件用于IWshRuntimeLibrary

需要的文件进行组装:

Files

注意,我知道有些文件可以删除(svhost等)。但是这不会有帮助,因为我仍然有多个文件。我也尝试过一些免费的在线装配工,但都没有工作。

+2

[合并程序集]的可能重复(http://stackoverflow.com/questions/3562709/merging-assemblies) –

+1

您只需要这些文件的一小部分选择。所有'.pdb'和'.vshost'文件不应该分发 –

+0

你有没有考虑过将这个DLL作为资源嵌入到你的exe文件中?请参考:http://www.codeproject。com/Articles/528178/Load-DLL-From-Embedded-Resource – pmatyszok

回答

0

在解决方案资源管理器中,选择参考Interop.IWshRunctime...,然后在属性窗口中将Embed Interop Types的值更改为True

这不会为Interop类型生成单独的dll。

PS:这不是一个通用的解决方案,但只适用于Interop类型。

0

如果这是不是安全的原因,我想创建的目录结构如下:

- root 
└ Startup.bat 
└ lib 
    └ DiagnosticsSwitch.exe 
    └ DiagnosticsSwitch.exe.config 
    └ DiagnosticsSwitch.exe.manifest 
    └ Interop.IWshRuntimeLibrary.dll 

而且在Startup.bat里面

"lib/DiagnosticsSwitch.exe" 
相关问题