代码之家  ›  专栏  ›  技术社区  ›  DavidAnastasov

使用所需变量生成可执行文件

c#
  •  -1
  • DavidAnastasov  · 技术社区  · 8 年前

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

    我的程序是用来控制你的电脑与网络接口,所以假设我有一个用户在我的网站上有2台电脑。他需要一个为他创建的可执行文件,其用户ID在我的网站数据库中。但是如果我有另一个用户和更多的用户,我需要制作我的程序的数千个版本。

    另外,作为一个附带问题,这可以在一个网站上实现,比如说我的网站上有用户,每个用户都有自己的唯一ID,我希望当他们下载时,该ID被硬编码到我的程序中。请不要过于关注这个问题,因为它只是一个附带问题。

    1 回复  |  直到 8 年前
        1
  •  1
  •   xanatos    8 年前

    我觉得你的想法不太好,但是你提出了一个具体的要求,所以我会给你一个具体的答复。

    如果你的计划是 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文件 从命令提示,或使用给出的指令 here