我试图从RTC(BuildForge)使用MSBuild启动.net Build.我一直得到以下异常:
错误MSB1009:项目文件不存在.开关:F:\ Program Files(x86)\ IBM\Build Forge\Agent\Captiva_Build_dotNET\BUILD_117\xxxxxx \源代码\ Components\xxxxxx\xxxxxxx.sln
build命令如下
MSBuild.exe "xxxx.sln" /t:xxx_yyyy_zzzzzz_asdfasdf_base
Run Code Online (Sandbox Code Playgroud)
/t:解决方案中的其中一个项目.我不明白我做错了什么.我_在声明中有.这应该是一个简单的构建?有任何想法吗?
msbuild.exe /t:target用于执行解决方案或项目中的特定目标.
msbuild.exe MySolution.sln /t:Clean
Run Code Online (Sandbox Code Playgroud)
要构建特定项目,您需要指定项目文件而不是解决方案.
msbuild.exe MyProject.csproj
Run Code Online (Sandbox Code Playgroud)
编辑:
尤里卡,你是绝对正确的,我使用了MsBuildEmitSolutionenv变量来输出metaproj脚本,但之前从未见过.
所以在你到达之前:
MsBuild.exe MySolution.sln /t:ProjectName:TargetName
Run Code Online (Sandbox Code Playgroud)
在命令行中,设置MsBuildEmitSolution:
set MsBuildEmitSolution=1
Run Code Online (Sandbox Code Playgroud)
然后生成你的metaproj.
MsBuild.exe MySolution.sln /pp
Run Code Online (Sandbox Code Playgroud)
MySolution.sln.metaproj在记事本中打开输出文件并向下滚动并找到<Target />您要构建的相关节点,并记下Name属性字符串.
<Target Name="Client_Test:Build">
<MSBuild Condition="'%(ProjectReference.Identity)' == '...Client_Test.csproj'" Projects="@(ProjectReference)" Targets="Publish" BuildInParallel="True" ToolsVersion="$(ProjectToolsVersion)" Properties="..." />
</Target>
Run Code Online (Sandbox Code Playgroud)
还有VOILA!
MsBuild.exe MySolution.sln /t:"Client_Test:Build"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15397 次 |
| 最近记录: |