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

虽然’no-log’版本似乎可以顺利运行

“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 | projectfile | anyfile.ext] [开关]

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

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

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

产品专用开关:

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

[我正在使用Visual Studio 2008 Express]

所以,问题是:

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

  • 或者只在IDE以GUI模式运行时才使用/Log开关? 如果是这样,有解决方法吗?

在引擎盖下,Visual Studio使用msbuild来实现它的所有构建魔法。 据我所知,这也适用于Express版本。

如果您还没有,MSBuild是.NET SDK的一部分。

调用MSBuild具有直接进行构建的优势 – 调用VCSExpress只会引入开销。

这是我用过的MSBuild命令行:

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

应该与而不是

您必须在/ 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是否具有“构建”菜单下的“配置管理器”或解决方案构建属性页面..但这可以是您可以仔细检查当前设置的位置。 请参阅“Active Solution Configuration”。这个人碰到了这个,看看他们的屏幕截图: MSBuild任务配置属性