如何从命令行构建一个.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任务配置属性