繁体   English   中英

如何从命令行构建.csproj,并将日志写入指定位置?

[英]How does one build a .csproj from command line having a log written to a specified location?

虽然“无日志”构建似乎可以与类似

“ c:\\ Program Files \\ Microsoft Visual Studio 9.0 \\ Common7 \\ ide \\ VCSExpress” Project1.csproj / build

以下失败:

“ c:\\ Program Files \\ Microsoft Visual Studio 9.0 \\ Common7 \\ ide \\ VCSExpress” Project1.csproj / build /Log=log.txt

显示带有此文本的窗口:

缺少开关参数。 / build开关所需的配置名称。

使用:vcsexpress [solutionfile | 工程文件| anyfile.ext] [开关]

vcsexpress的第一个参数通常是解决方案文件或项目文件。 如果要在编辑器中自动打开文件,也可以将其他任何文件用作第一个参数。 输入项目文件时,IDE会在项目文件的父目录中查找与该项目文件具有相同基本名称的.sln文件。 如果不存在这样的.sln文件,则IDE将查找引用该项目的单个.sln文件。 如果不存在这样的单个.sln文件,则IDE将使用默认.sln文件名创建未保存的解决方案,该默认.sln文件名与项目文件具有相同的基本名称。

命令行构建:vcsexpress solutionfile.sln / build [solutionconfig] [/ project projectnameorfile [/ projectconfig name]]可用的命令行开关:

/ Log将IDE活动记录到指定的文件中以进行故障排除。 / ResetSettings恢复IDE的默认设置,还可以选择重置为指定的VSSettings文件。 / SafeMode以安全模式启动IDE,并加载最少的窗口。

产品专用开关:

要从命令行附加调试器,请使用:VsJITDebugger.exe -p

[我正在使用Visual Studio 2008 Express]

因此,问题是:

  • 有没有办法确保将日志文件写入某处?

  • 还是仅在以GUI模式运行IDE时才应使用/Log开关? 如果是这样,是否有解决方法?

在后台,Visual Studio使用msbuild进行所有构建。 据我所知,这也适用于Express版本。

如果尚未安装,则MSBuild是.NET SDK的一部分。

调用MSBuild具有直接进行构建的优势-调用VCSExpress只会带来开销。

这是我使用过的MSBuild命令行:

msbuild.exe <solution> 
    /t:rebuild 
    /verbosity:quiet 
    /logger:FileLogger,Microsoft.Build.Engine;logfile=<filePath>

应该与<project>而不是<solution>

您必须在/ build选项之后指定配置。 此外,日志文件必须已经存在,它不会从头开始创建一个。 从而:

copy con > log.txt
^Z      // Type Ctrl+Z
"c:\Program Files\Microsoft Visual Studio 9.0\Common7\ide\VCSExpress" Project1.csproj /build debug /log log.txt

在弹出所有信息的窗口中。它给您错误:

缺少开关参数。 / build开关所需的配置名称。

然后,它为您提供了一堆信息,其中包括:

命令行构建: vcsexpress solutionfile.sln /build [ solutionconfig ]

它只是想知道您具有哪种解决方案配置-我认为是“发布”或“调试”。 不知道vcsexpress是否在“构建”菜单下具有“配置管理器”或“解决方案构建属性页”。但这是您可以再次检查当前设置的位置。 请参阅“活动解决方案配置”。该人员遇到了此问题,请查看其屏幕截图: MSBuild任务配置属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM