C#编译Visual Studio程序

C#编译Visual Studio程序,c#,compiler-construction,C#,Compiler Construction,我试图创建一个程序,它多次编译另一个程序,每次都调整一个类源文件中的一些常量变量(如硬编码配置) 我需要从构建器中编译程序(一个c#visual studio项目,如果有帮助的话)。这是如何完成的?您可以使用进程.Start调用.net编译器 可执行文件称为csc.exe,通常位于c:\Windows\Microsoft.NET\Framework\vX.X.XXX中您可以使用进程.Start调用.NET编译器 可执行文件称为csc.exe,通常位于c:\Windows\Microsoft.NE

我试图创建一个程序,它多次编译另一个程序,每次都调整一个类源文件中的一些常量变量(如硬编码配置)


我需要从构建器中编译程序(一个c#visual studio项目,如果有帮助的话)。这是如何完成的?

您可以使用
进程.Start调用.net编译器


可执行文件称为csc.exe,通常位于c:\Windows\Microsoft.NET\Framework\vX.X.XXX中

您可以使用
进程.Start调用.NET编译器


可执行文件称为csc.exe,通常位于c:\Windows\Microsoft.NET\Framework\vX.X.XXX中。您可以通过多种方式调用c#编译器:

  • 您可以使用将特定的C#文件编译为可执行文件
  • 您可以使用编译c#字符串
  • 如果要编译Visual Studio项目,可以使用
  • 用户还可以编译c#代码

然而,你所做的听起来像是解决问题的错误方法。将其设置为变量并通过命令行参数、应用程序设置或从经过身份验证的web服务器下载来提供更为合理。

您可以通过多种方式调用C#编译器:

  • 您可以使用将特定的C#文件编译为可执行文件
  • 您可以使用编译c#字符串
  • 如果要编译Visual Studio项目,可以使用
  • 用户还可以编译c#代码


然而,你所做的听起来像是解决问题的错误方法。将其设置为变量并通过命令行参数、应用程序设置或从经过身份验证的web服务器下载来提供更为合理。

编辑:我复制/粘贴的示例不正确。我希望提供的选项是使用。无法获取样本代码

编辑:我复制/粘贴的样本不正确。我希望提供的选项是使用。每次调整一个类源文件中的某些常量变量(如硬编码配置)时,都会获得示例代码。

听起来您最好使用一些搜索时会发现的变量。我建议你从那里开始,如果你有更具体的问题,再回来。如果你让我在c#中做类似的事情,这基本上是一个美化的批处理脚本。我知道你可以用谷歌搜索,事实上有一个元问题,其中说,理想情况下,这应该是此类问题的第一个结果。这是一个很多其他人都可能遇到的问题——尽管像大多数事情一样,你总能在某个地方找到答案,但最好有一个明确的答案。你有什么特别的原因需要反复编译另一个程序吗,难道不能用这些参数调用一个函数,让VM处理优化吗?使用诸如memonization(如果合适)和curry/prepped functor(包含匿名函数)之类的基本选项,您可能能够从VM中获得一些不错的性能。这是假设您的编译是关于性能的。
每次调整一个类源文件中的一些常量变量(如硬编码配置)。
-听起来您最好使用一些搜索时会发现的常量变量。我建议你从那里开始,如果你有更具体的问题,再回来。如果你让我在c#中做类似的事情,这基本上是一个美化的批处理脚本。我知道你可以用谷歌搜索,事实上有一个元问题,其中说,理想情况下,这应该是此类问题的第一个结果。这是一个很多其他人都可能遇到的问题——尽管像大多数事情一样,你总能在某个地方找到答案,但最好有一个明确的答案。你有什么特别的原因需要反复编译另一个程序吗,难道不能用这些参数调用一个函数,让VM处理优化吗?使用诸如memonization(如果合适)和curry/prepped functor(包含匿名函数)之类的基本选项,您可能能够从VM中获得一些不错的性能。这是假设您的编译是关于性能的。这样做的好处是可以对可执行文件进行模糊处理-有没有办法在不重新编译的情况下更改特定于该已编译产品的配置变量?您可以使用应用程序设置。这里的问题是,如果你试图混淆你的代码,给人们提供多个已知差异很小的版本实际上会使破解变得更容易。如果这是一个拷贝保护问题,我认为业界已经认定,试图隐藏代码通常是浪费时间。现在我们做了一些事情,比如让人们注册——“没有Facebook帐户你不能使用它”是很好的版权保护。然后你把所有的数据都放在服务器上,链接到Facebook账号上,这样一份可执行文件本身就没用了。如果人们试图改变它的值,那就没有问题了。这个想法仅仅是为每个编译的exe指定一个特定的常数。那个常数到底是什么使得它如此重要?你不能把它放在应用程序配置中(正如Jasmine建议的那样)并加密吗?我已经回答过了,但是这些评论揭示了你所尝试的并不能实现你所认为的,所以我告诉你其他的选择。编译不同版本的程序不会阻止人们复制它,并可能使它更容易破解。你说这就是你这么做的原因,我不想让别人偷你的东西!我个人认为你在这里问了一个错误的问题-如果你真正想要的是保护你的代码。这样做的好处是混淆了可执行文件-有没有一种方法可以在不重新编译的情况下更改特定于已编译产品的配置变量?你可以使用application setti