gpt4 book ai didi

c# - 如何以编程方式使用 C# 编译项目和解决方案?

转载 作者:行者123 更新时间:2023-11-30 21:20:07 31 4
gpt4 key购买 nike

我的困境是我需要根据文件中指定的配置设置编译大量项目和解决方案。我找到了几种不同的方法来做到这一点,并且我已经着手使用 Microsoft.Build.BuildEngine.Engine 类,最近已弃用。

下面是一些说明其用法的示例代码:(注意 node.Path 是项目文件的路径)

var builder = new Engine { BinPath = @"C:\Windows\Microsoft.NET\Framework\v3.5" };
var logger = new FileLogger { Parameters = @"logfile=" + Path.Combine(logdir, Path.GetFileName(node.Path)) + ".txt" };

compiler.RegisterLogger(logger);
bool success = compiler.BuildProjectFile(node.Path);
compiler.UnregisterAllLoggers();

return success;

我的问题 - 它在调试中编译 :(

查看类的成员并没有多大帮助,因为没有公开那么多属性。一个提示是 PropertyGroup 似乎允许设置某些项目构建选项的属性。但是,尚不清楚如何将对 BuildProjectFile 的结果调用输出到发布中。

如果您对此有任何帮助,我将不胜感激!

最佳答案

必须通过代码来做到这一点吗?您可能会发现使用 NAnT 之类的东西更容易, 以及 NAntContrib , MSBuild task 相当全面,并且很容易指定要构建的目标,例如:

  <msbuild project="${ProjectBasePath}\${ProjectName}.sln">
<property name="Configuration" value="debug"/>
</msbuild>

您还可以从 command line 调用 MSBuild ,例如:

msbuild.exe project.proj /t:rebuild /p:Configuration=Debug

与 msbuild 相比,nant 的优势在于您可以编写构建过程的脚本。我个人认为它很容易上手,您可以从中获得很多力量和灵 active 。

也可以直接调用Visual Studio:

devenv.exe /Rebuild release "ProjectName.sln" /Out "c:\vs_errors.txt"

这也会将构建输出输出到 c:\vs_errors.txt

关于c# - 如何以编程方式使用 C# 编译项目和解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3443866/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com