-1

我有一个程序,它具有仅属于该用户的唯一用户 ID。该 ID 是硬编码的,并在 Web 界面中使用,用户可以在其中看到他的计算机而不是其他人的计算机,因此每当我需要将我的程序提供给另一个用户时,我都需要使用新的硬编码可执行文件重新编译可执行文件。所以我想制作一个简单的表单,它有一个用于客户端 ID 的文本框和一个编译按钮,因此它编译一个可执行文件,其中客户端 ID 在该可执行文件中硬编码的文本框中。我该怎么做呢?我对此进行了研究并发现了这一点,但我认为它不能用于我的情况。

我的程序用于通过 Web 界面控制您的 pc,所以可以说我的网站上有 1 个用户,它有 2 台计算机。他需要使用我网站数据库中的用户 ID 为他制作一个可执行文件。但是,如果我有另一个用户以及更多用户,我需要制作数千个版本的程序。

另外作为一个附带问题,这可以在网站上完成,假设我的网站上有用户,每个用户都有他唯一的 id,我希望当他们去下载它时,在我的程序中硬编码该 id。请不要过分关注这个问题,因为它只是一个附带问题。

4

1 回答 1

1

我觉得你的想法不是很好,但是你提出了具体的要求,所以我给你一个具体的回应。

如果您的程序msbuild能够,那么只需执行

msbuild yoursolution.sln /p:Configuration=Release /p:Platform="Any CPU"

(我在这里使用的是 Release/AnyCPU,但您必须使用正确的参数,具体取决于您通常如何编译解决方案)

通过该System.Diagnostics.Process.Start方法将朝着正确的方向迈出一大步。

显然,在这样做之前,您修改了.cs将包含在程序中的文件或资源。

现在......唯一的问题是,使用较新的 Visual Studio/.NET,msbuild.exe位置可能会改变。解决它的最简单方法是手动找到它,例如打开 Visual Studio 命令提示符并执行以下操作:

where msbuild.exe

msbuild.exe第一个路径是如果您从该命令提示符使用,或使用此处给出的说明,将执行的路径

于 2018-05-21T08:50:36.523 回答