程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何从C#代码以编程方式构建我的解决方案文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何从C#代码以编程方式构建我的解决方案文件??

开发过程中遇到如何从C#代码以编程方式构建我的解决方案文件?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何从C#代码以编程方式构建我的解决方案文件?的解决方法建议,希望对你解决如何从C#代码以编程方式构建我的解决方案文件?有所启发或帮助; | 我有一个包含许多项目的大型解决方案,其中一个是安装项目。还有许多当前版本存储在单独的分支中。我有一个曾经在.NET 2中工作的构建工具,但是自从升级到.NET 4以来一直没有工作。 在内部,新的.NET 4版本的构建工具使用@H_851_3@microsoft.TeamFoundation.ClIEnt.RegisteredTfsConnections.GetProjectCollections()
versionControlServer.GetAllTeamProjects(false)
从我的TFS源代码控制服务器中获取ѭ2collection的集合。 然后,我在UI中直观地显示它们,并且当用户单击特定的解决方案版本时,应用程序将调用以下命令以获取该解决方案版本的最新信息:
workspace.Get(new String[] { serverPath },Versionspec.Latest,RecursionType.Full,Getoptions.GetAll);
用于构建解决方案文件的应用程序,其中包括Setup项目。在此阶段,安装项目将创建一个可以与应用程序一起安装的MSI。这是我遇到的最后一步。 我需要能够以编程方式构建用户使用C#代码选择的解决方案。可用的.NET 2代码如下:
Process process = new Process();
processstarTinfo processstarTinfo = process.StarTinfo;
processstarTinfo.filename = processname;
processstarTinfo.Arguments = String.Format(\" \\\"{0}\\\" /BUILD \\\"Release|Any cpu\\\"\",solutionPath);
processstarTinfo.WorkingDirectory = processDirectory;
process.Start();
运行此命令时没有错误,但是它不再启动Visual studio并生成代码。显然,这最初是一种糟糕的方法,但是我无法使用TFS类找到“正确”的方法。 我还尝试了直接运行MSBuild.exe(类似于上面的示例),这确实可以构建解决方案,但是由于某些原因,它不能构建产生MSI的安装项目。请注意,我不使用任何手动创建的构建文件。 不幸的是,很难找到有关Microsoft.TeamFoundation命名空间的有用文档!我希望这里有人可以使用这些类,并可以指导我解决此问题。 如果可能的话,我需要使用.NET类(例如,不是Process.Start),因为我真的需要知道构建何时完成。但是,如果要求太多,我可以为此设置一个“ 5”对象。     

解决方法

        msbuild跳过安装程序项目,因为它不知道如何构建它们。 FinalBuilder会使用devenv.exe进行构建。 调用`devenv / build \“ Release | Any CPU \” / project \“ MyInstaller.vdproj \”应该从命令行运行所需的构建,而无需启动VS GUI。尝试一下! 说了这么多:我们也使用FinalBuilder,并且不推荐使用VS Installer,因此您可能要计划替换它。     ,        事实证明,问题是完全不相关的。将要更新的.NET 2代码已将\ Program Files硬编码到devenv.exe文件路径中-但是新计算机是64位,并且Visual studio 2010已安装到Program档案(x86)\中! 因此,这意味着上面的代码示例确实起作用,并且将允许我从C#构建解决方案。这不是我更喜欢这样做的面向对象的方式,但是在您提出所有意见之后,我很高兴能够使其完全正常工作。 谢谢大家的宝贵时间。     

大佬总结

以上是大佬教程为你收集整理的如何从C#代码以编程方式构建我的解决方案文件?全部内容,希望文章能够帮你解决如何从C#代码以编程方式构建我的解决方案文件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。