[C#Windows窗体可编译另一种窗体

问题描述 投票:-1回答:3

我有一个Windows窗体应用程序,我搜索与第一个应用程序一起创建另一个WinForm应用程序的.exe。因为我想在Application1中选择具有部署参数(目标文件夹)并使用按钮创建文件或文件夹的文件或文件夹,并使用附加文件创建另一个表单应用程序。

Application2会将文件部署到目标文件夹集中。

我查看了“ Csharpcode提供程序”以编译其他形式。我可以将源代码写入文件中,然后使用此文件进行编译,但是对附加文件该怎么办?

您还有其他解决方案或想法吗?

c# winforms compilation .net-assembly
3个回答
1
投票
在CompilerParameters中,您不能将GenerateExecutable设置为true。

1
投票
出于多种原因,在这种情况下,即时编译是个坏主意。它可能要慢得多,并且需要将整个代码传递给用户机器,并且将依赖于用户具有兼容的环境。 PDB也将是无用的,因为它们将在用户站点上生成。相反,您应该始终在计算机中进行编译,然后仅提供这些二进制文件,这也比编写代码简单得多。

一种可能的方法是将目标exe作为

嵌入式资源包含在安装程序中。将要从其build文件夹中部署的.exe添加到安装程序项目中,并将其切换为嵌入式资源,该资源将在另一个文件中包含整个文件。然后在运行时,您只需从中读取并保存在其他位置即可。

为此,您可以使用GetManifestResourceStream方法(Look at its documentation for the details)以及常规的文件编写例程在用户站点上将其提取。 This question also deals with this particular topic。使用这种技术,安装程序将只读取其内部文件并将其保存到您选择的位置,就像大多数安装程序一样提取压缩文件一样,只是使用预编译的代码。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.