我有一个PrimaryBuild.targets文件,我使用MSBuild构建,通过Team Foundation Server构建定义。该文件调用其他msbuild任务来构建我的组件和许多其他目标中包含的所有VB解决方案。
(msbuild PrimaryBuild.targets)
/t:FullBuild;Deploy /p:Decorator=NTBMDev;DropLocation=\\xxx.xxx.xxx.xxx\;CurrentBranch=DEV;Configuration=Debug
当我在本地计算机上批量构建它时,一切似乎都很好。当我在构建服务器上构建它时,在构建过程中会创建一个PrimaryBuild.target.vsprops文件。 IT会覆盖我的项目的OutputDirectory,并且所有输出文件都会复制到错误的文件夹(我的部署目标找不到它)
<?xml version="1.0" encoding="utf-8"?>
<VisualStudioPropertySheet ProjectType="Visual C++" Version="8.00" Name="Team Build Overrides" OutputDirectory="C:\Builds\7\NexTra\BMDEV\Binaries" />
在构建过程中没有构建任何VC ++项目,我只使用VB项目或编写自己的目标。此外,这是在服务器上构建期间创建.vsprops的唯一组件,其他组件工作正常。我甚至不知道我应该在哪里搜索,为什么这个项目会创建这个文件 如果它有帮助 - 这是我日志中的CoreCompile:
c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Vbc.exe /noconfig /baseaddress:11000000 /imports:Microsoft.VisualBasic,System,System.Collections,System.Data,System.Diagnostics /optioncompare:Binary /optionexplicit+ /optionstrict+ /nowarn:42353,42354,42355 /optioninfer+ /nostdlib /removeintchecks- /sdkpath:"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0" /doc:obj\Debug\RuleSet.BM.xml /define:"CONFIG=\"Debug\",DEBUG=-1,TRACE=-1,_MyType=\"Windows\",PLATFORM=\"AnyCPU\"" /reference:**********.dll,***********.dll,***********.dll,*************.dll,"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll","C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll","C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll","C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Drawing.dll","C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Windows.Forms.dll","C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.dll" /debug+ /debug:full /keyfile:..\..\..\Transformer.snk /optimize- /out:obj\Debug\RuleSet.BM.dll /target:library /warnaserror- RuleSet.BM.vb AssemblyInfo.vb RuleSetInfo.vb "C:\Documents and Settings\pl-nextrabuild\Local Settings\Temp\.NETFramework,Version=v4.0.AssemblyAttributes.vb" /warnaserror+:41999,42016,42017,42018,42019,42020,42021,42022,42032,42036
答案 0 :(得分:1)
.vsprops文件是由TFS创建的,以防万一有任何C ++项目,它没有在你的构建中使用。但它确实包含了TFS也为所有其他项目创建的$(OutDir)相同的更改。查看文件,
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets
并查看CoreCleanSolution目标以查看逻辑。在TFS构建过程模板中搜索OutDir,以查看TFS如何更改此属性,这就是您的项目构建到备用位置的原因。