VS Web Site Project

Hi Kevin,

Sorry for your frustration. Building web sites is a bit tricky because they don't support the same set of platforms as normal client projects. After talking to the Team Build folks, it appears that what you have to do is ... open up the .PROJ file (e.g., TFSBuild.proj) that gets created when you create a new Build Type. Look for the property called "PlatformToBuild". It probably has the default value of AnyCPU. Instead, try changing this value to "Mixed Platforms" if your .SLN contains a mix of web sites and client projects, or change it to just ".NET" if your .SLN contains only web sites. In the final release of Team Foundation Server Build, these options will show up in the dropdown for Platform when you create a new Build Type, but in the current Betas, you have to manually modify the .PROJ.

Hope this helps.

--Rajeev

[854 byte] By [RajeevGoelmsft] at [2007-12-17]
# 1
I tried that ... here's what I put:

<ConfigurationToBuild Include="Release|Mixed Platforms">
<FlavorToBuild>Release</FlavorToBuild>
<PlatformToBuild>Mixed Platforms</PlatformToBuild>
</ConfigurationToBuild>

When I run the Team Build for the solution, I don't see any of my aspx pages in the "Production Build 2005XXXX\Mixed Platforms\Release" folder. I just see the GraebelCommon.dll

Here's the log file results:

Build started 10/19/2005 11:32:07 AM.

__

Project "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\TFSBuild.proj" (EndToEndIteration target(s)):

Target InitializeEndToEndIteration:

Target CoreClean:

Removing directory "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources".

Removing directory "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources\..\Binaries".

Target InitializeBuild:

Creating directory "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources".

Creating directory "\\voyager3\GapocProd\Production Build_20051019.4".

Target CoreGet:

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\app.config

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Cache

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Classes

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\DataAccessors

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Forms

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\GraebelCommon.csproj

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\GraebelCommon.csproj.vspscc

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Masters

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Properties

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\scripts

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\AttributeFactory.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\AttributeParser.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\AttributeType.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\IAttribute.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\Localize

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\Permission

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\ReadMe.txt

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\TextStyle

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\Localize\LocalizeAttribute.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\Permission\PermissionAttribute.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\TextStyle\TextStyle.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Attributes\TextStyle\TextStyleAttribute.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Cache\TranslationCache.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Classes\BaseSession.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\DataAccessors\TranslationsToLocales.Designer.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\DataAccessors\TranslationsToLocales.xsc

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\DataAccessors\TranslationsToLocales.xsd

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\DataAccessors\TranslationsToLocales.xss

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Forms\BasePage.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Masters\BaseMasterPage.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Properties\AssemblyInfo.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Properties\Settings.Designer.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\Properties\Settings.settings

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\scripts\attribute.js

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Development Build

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Production Build

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Development Build\TFSBuild.proj

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Development Build\TFSBuild.rsp

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Development Build\VCOverrides.vsprops

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Development Build\WorkspaceMapping.xml

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Production Build\TFSBuild.proj

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Production Build\TFSBuild.rsp

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Production Build\VCOverrides.vsprops

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\TeamBuildTypes\Production Build\WorkspaceMapping.xml

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web.sln

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web.vssscc

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\App_Themes

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\Bin

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\Default.aspx

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\Default.aspx.cs

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\images

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\Masters

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\web.config

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\App_Themes\Default

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\App_Themes\Microsoft

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\App_Themes\Default\Default.skin

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\App_Themes\Default\images

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\App_Themes\Default\images\headerGraphic.gif

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\App_Themes\Microsoft\images

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\App_Themes\Microsoft\Microsoft.skin

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\App_Themes\Microsoft\images\headerGraphic.gif

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\Bin\msmdvbanet.dll.refresh

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\Masters\GAPOC.master

Getting c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web\Masters\GAPOC.master.cs

Label Production Build_20051019.4@/VOYAGER3_GlobalAlliance_Production Build is successfully created

Target CoreCompile:

Creating directory "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources\..\Binaries".

Setting BinariesRoot=c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources\..\Binaries

__

Project "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\TFSBuild.proj" is building "c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web.sln" (Build target(s)):

Target ValidateSolutionConfiguration:

Building solution configuration "Release|Mixed Platforms".

Target Build:

Target GraebelCommon:

__

Project "c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web.sln" is building "c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\GraebelCommon.csproj" (default targets):

Target PrepareForBuild:

Creating directory "c:\builds\GapocProd\GlobalAlliance\Production Build\Binaries\Mixed Platforms\Release\".

Creating directory "obj\Release\".

Target CoreCompile:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /define:TRACE /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /debug:pdbonly /optimize+ /out:obj\Release\GraebelCommon.dll /target:library Cache\TranslationCache.cs Attributes\AttributeFactory.cs Attributes\AttributeParser.cs Attributes\AttributeType.cs Attributes\IAttribute.cs Attributes\Localize\LocalizeAttribute.cs Attributes\Permission\PermissionAttribute.cs Attributes\TextStyle\TextStyle.cs Attributes\TextStyle\TextStyleAttribute.cs Classes\BaseSession.cs DataAccessors\TranslationsToLocales.Designer.cs Forms\BasePage.cs Masters\BaseMasterPage.cs Properties\AssemblyInfo.cs Properties\Settings.Designer.cs

Target _CopyAppConfigFile:

Copying file from "app.config" to "c:\builds\GapocProd\GlobalAlliance\Production Build\Binaries\Mixed Platforms\Release\GraebelCommon.dll.config".

Target CopyFilesToOutputDirectory:

Copying file from "obj\Release\GraebelCommon.dll" to "c:\builds\GapocProd\GlobalAlliance\Production Build\Binaries\Mixed Platforms\Release\GraebelCommon.dll".

GraebelCommon -> c:\builds\GapocProd\GlobalAlliance\Production Build\Binaries\Mixed Platforms\Release\GraebelCommon.dll

Copying file from "obj\Release\GraebelCommon.pdb" to "c:\builds\GapocProd\GlobalAlliance\Production Build\Binaries\Mixed Platforms\Release\GraebelCommon.pdb".

Target C:\\web\:

__

Project "c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\web\web.sln" is building "c:\builds\GapocProd\GlobalAlliance\Production Build\Sources\Common\GraebelCommon\GraebelCommon.csproj" (GetTargetPath target(s)):

Copying file from "c:\builds\GapocProd\GlobalAlliance\Production Build\Binaries\Mixed Platforms\Release\GraebelCommon.dll" to "C:\graebel2.0\GAPOC\web\\Bin\GraebelCommon.dll".

Copying file from "c:\builds\GapocProd\GlobalAlliance\Production Build\Binaries\Mixed Platforms\Release\GraebelCommon.pdb" to "C:\graebel2.0\GAPOC\web\\Bin\GraebelCommon.pdb".

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -v /web -p C:\graebel2.0\GAPOC\web\ -u -f "c:\builds\GapocProd\GlobalAlliance\Production Build\Binaries\Mixed Platforms\Release\_PublishedWebsites\web\\"

Target GetChangeSetsAndUpdateWorkItems:

Querying the contents of label 'LProduction Build_20051019.3@$/GlobalAlliance'.

Querying the contents of label 'LProduction Build_20051019.4@$/GlobalAlliance'.

Analyzing labels LProduction Build_20051019.3@$/GlobalAlliance and LProduction Build_20051019.4@$/GlobalAlliance.

Querying item history.

Changeset '72' was included in this build.

Changeset '73' was included in this build.

Target CoreDropBuild:

Creating directory "\\voyager3\GapocProd\Production Build_20051019.4\Mixed Platforms\Release".

Copying file from "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources\..\Binaries\Mixed Platforms\Release\GraebelCommon.dll" to "\\voyager3\GapocProd\Production Build_20051019.4\Mixed Platforms\Release\GraebelCommon.dll".

Copying file from "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources\..\Binaries\Mixed Platforms\Release\GraebelCommon.dll.config" to "\\voyager3\GapocProd\Production Build_20051019.4\Mixed Platforms\Release\GraebelCommon.dll.config".

Copying file from "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources\..\Binaries\Mixed Platforms\Release\GraebelCommon.pdb" to "\\voyager3\GapocProd\Production Build_20051019.4\Mixed Platforms\Release\GraebelCommon.pdb".

Creating directory "\\voyager3\GapocProd\Production Build_20051019.4\Mixed Platforms\Release\_PublishedWebsites\web".

Copying file from "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources\..\Binaries\Mixed Platforms\Release\_PublishedWebsites\web\PrecompiledApp.config" to "\\voyager3\GapocProd\Production Build_20051019.4\Mixed Platforms\Release\_PublishedWebsites\web\PrecompiledApp.config".

Creating directory "\\voyager3\GapocProd\Production Build_20051019.4\Mixed Platforms\Release\_PublishedWebsites\web\bin".

Copying file from "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources\..\Binaries\Mixed Platforms\Release\_PublishedWebsites\web\bin\GraebelCommon.dll" to "\\voyager3\GapocProd\Production Build_20051019.4\Mixed Platforms\Release\_PublishedWebsites\web\bin\GraebelCommon.dll".

Copying file from "c:\builds\GapocProd\GlobalAlliance\Production Build\BuildType\..\Sources\..\Binaries\Mixed Platforms\Release\_PublishedWebsites\web\bin\GraebelCommon.pdb" to "\\voyager3\GapocProd\Production Build_20051019.4\Mixed Platforms\Release\_PublishedWebsites\web\bin\GraebelCommon.pdb".

Build succeeded.

0 Warning(s)

0 Error(s)

Time Elapsed 00:00:10.17

KevinSchlegelmilch at 2007-9-9 > top of Msdn Tech,Visual Studio,Visual Studio MSBuild...
# 2
Hmm, your log does seem to indicate that the web site was indeed precompiled to the following location:

c:\builds\GapocProd\GlobalAlliance\Production Build\Binaries\Mixed Platforms\Release\_PublishedWebsites\web\

Can you double-check this location to see if there are any built assemblies there?

--Rajeev

RajeevGoelmsft at 2007-9-9 > top of Msdn Tech,Visual Studio,Visual Studio MSBuild...
# 3
Under that folder I have:

PrecompiledApp.config
bin\GraebelCommon.dll
bin\GraebelCommon.pdb

Right now in the solution if I do a publish locally to C:\graebel2.0\GAPOC\PrecompiledWeb\web I get:

Default.aspx
PrecompiledApp.config
web.config
App_Themes\....
bin\App_Web_default.aspx.cdcab7d2.dll
bin\App_Web_gapoc.master.604434.dll
bin\GraebelCommon.dll
bin\GraebelCommon.pdb
bin\msmdvbanet.dll
Masters\....

KevinSchlegelmilch at 2007-9-9 > top of Msdn Tech,Visual Studio,Visual Studio MSBuild...
# 4

Here's what I just tried and still doesn't seem to work:

1. Created a brand new Team Project --> TestProject
2. Created a brand new Team Web Site Solution --> WebSite1
3. Quit out of VS and moved the WebSite1.sln to the root of my TestProject directory
4. Checked in the TestProject directory into Team Foundation Server
5. Created a new Team Build for Debug|.NET --> TestBuild
6. Ran the build

Went to the Team Foundation Server and found that it did extract all the files from source control, but never build anything. On the Team Foundation Server there's no precompile web site that I can find that has any of my compiled aspx pages.

Build started 10/19/2005 4:25:58 PM.
__
Project "c:\testproject\build\TestProject2\TestBuild\BuildType\TFSBuild.proj" (EndToEndIteration target(s)):

Target InitializeEndToEndIteration:

Target CoreClean:
Removing directory "c:\testproject\build\TestProject2\TestBuild\BuildType\..\Sources".
Removing directory "c:\testproject\build\TestProject2\TestBuild\BuildType\..\Sources\..\Binaries".
Target InitializeBuild:
Creating directory "c:\testproject\build\TestProject2\TestBuild\BuildType\..\Sources".
Creating directory "\\voyager3\testbuilddrop\TestBuild_20051019.6".
Target CoreGet:
Getting c:\testproject\build\TestProject2\TestBuild\Sources
Getting c:\testproject\build\TestProject2\TestBuild\Sources\TeamBuildTypes
Getting c:\testproject\build\TestProject2\TestBuild\Sources\WebSite1
Getting c:\testproject\build\TestProject2\TestBuild\Sources\TeamBuildTypes\TestBuild
Getting c:\testproject\build\TestProject2\TestBuild\Sources\TeamBuildTypes\TestBuild\TFSBuild.proj
Getting c:\testproject\build\TestProject2\TestBuild\Sources\TeamBuildTypes\TestBuild\TFSBuild.rsp
Getting c:\testproject\build\TestProject2\TestBuild\Sources\TeamBuildTypes\TestBuild\VCOverrides.vsprops
Getting c:\testproject\build\TestProject2\TestBuild\Sources\TeamBuildTypes\TestBuild\WorkspaceMapping.xml
Getting c:\testproject\build\TestProject2\TestBuild\Sources\WebSite1\WebSite1
Getting c:\testproject\build\TestProject2\TestBuild\Sources\WebSite1\WebSite1.sln
Getting c:\testproject\build\TestProject2\TestBuild\Sources\WebSite1\WebSite1.vssscc
Getting c:\testproject\build\TestProject2\TestBuild\Sources\WebSite1\WebSite1\Default.aspx
Getting c:\testproject\build\TestProject2\TestBuild\Sources\WebSite1\WebSite1\Default.aspx.cs
Getting c:\testproject\build\TestProject2\TestBuild\Sources\WebSite1\WebSite1\Web.Config
Label TestBuild_20051019.6@/VOYAGER3_TestProject2_TestBuild is successfully created
Target CoreCompile:
Creating directory "c:\testproject\build\TestProject2\TestBuild\BuildType\..\Sources\..\Binaries".

Setting BinariesRoot=c:\testproject\build\TestProject2\TestBuild\BuildType\..\Sources\..\Binaries
__
Project "c:\testproject\build\TestProject2\TestBuild\BuildType\TFSBuild.proj" is building "c:\testproject\build\TestProject2\TestBuild\Sources\WebSite1\WebSite1.sln" (Build target(s)):

Target ValidateSolutionConfiguration:
Building solution configuration "Debug|.NET".
Target Build:
Target C:\\WebSite1\:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -v /WebSite1 -p ..\..\..\..\..\..\graebel2.0\TestProject2\WebSite1\ -u -f -d c:\testproject\build\TestProject2\TestBuild\Binaries\.NET\Debug\_PublishedWebsites\WebSite1\
Target GetChangeSetsAndUpdateWorkItems:
Querying the contents of label 'LTestBuild_20051019.5@$/TestProject2'.
Querying the contents of label 'LTestBuild_20051019.6@$/TestProject2'.
Analyzing labels LTestBuild_20051019.5@$/TestProject2 and LTestBuild_20051019.6@$/TestProject2.
Querying item history.
No change sets are submitted to build [TestBuild_20051019.6].
Target CoreDropBuild:
Creating directory "\\voyager3\testbuilddrop\TestBuild_20051019.6\.NET\Debug\_PublishedWebsites\WebSite1".
Copying file from "c:\testproject\build\TestProject2\TestBuild\BuildType\..\Sources\..\Binaries\.NET\Debug\_PublishedWebsites\WebSite1\PrecompiledApp.config" to "\\voyager3\testbuilddrop\TestBuild_20051019.6\.NET\Debug\_PublishedWebsites\WebSite1\PrecompiledApp.config".

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:05.01

KevinSchlegelmilch at 2007-9-9 > top of Msdn Tech,Visual Studio,Visual Studio MSBuild...

Visual Studio

Site Classified