Компилятор VS2010 автоматически создает нежелательный файл .vsprops в проекте MSBuild - PullRequest
0 голосов
/ 14 июля 2011

У меня есть файл 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. ИТ-служба переопределяет 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

1 Ответ

1 голос
/ 14 июля 2011

Файл .vsprops создается TFS на случай, если есть какие-либо проекты C ++, он не используется в вашей сборке. Однако он содержит то же изменение $ (OutDir), которое TFS также создает для всех других проектов. Проверьте файл,

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets

и посмотрите на цель CoreCleanSolution, чтобы увидеть логику. Найдите OutDir в своем шаблоне процесса сборки TFS, чтобы увидеть, как TFS изменяет это свойство, поэтому ваши проекты собираются в другом месте.

...