【问题标题】:Building and package ccproj with TFS 2013 release使用 TFS 2013 版本构建和打包 ccproj
【发布时间】:2013-12-28 04:28:42
【问题描述】:

我正在尝试使用 TFS 2013 构建云服务包。

它是一个 ccproj 文件,这是 MSBuild 参数

/t:Publish /p:TargetProfile=Composite.WindowsAzure.Package.XS /p:PublishDir=\\core03\AzureBuild\AzureBuild /p:VisualStudioVersion=10.0 /p:EnableNuGetPackageRestore=true

它构建得很好,但包是 15mb 而不是我自己的本地机器生成的 8mb。当在包里面查找时,它已经把网站的 webrole.pdb 文件也放在了,所以看起来它没有在发布模式下构建。

不确定在哪里进行配置。

如果对我有任何帮助,可以在以下位置找到构建日志:http://pastebin.com/ad1CCGrC

这意味着它处于发布模式:

CopyFilesToOutputDirectory:
         Copying file from "obj\Release\WebRoleBoot.dll" to "C:\Builds\1\Freja\Azure Packages 1\bin\WebRoleBoot.dll".
         Composite.WindowsAzure.WebRole.SimpleBoot -> C:\Builds\1\Freja\Azure Packages 1\bin\WebRoleBoot.dll
         Copying file from "obj\Release\WebRoleBoot.pdb" to "C:\Builds\1\Freja\Azure Packages 1\bin\WebRoleBoot.pdb".

这表明可能有问题:(我们已经验证安装了 4.5)

 3>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(983,5): warning MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\Composite.WindowsAzure.WebRole.SimpleBoot\Composite.WindowsAzure.WebRole.SimpleBoot.csproj]
     3>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3270: There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project. [C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\Composite.WindowsAzure.WebRole.SimpleBoot\Composite.WindowsAzure.WebRole.SimpleBoot.csproj]
     3>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3270: There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "System.Data", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project. [C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\Composite.WindowsAzure.WebRole.SimpleBoot\Composite.WindowsAzure.WebRole.SimpleBoot.csproj]
     3>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3270: There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "System.Web", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project. [C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\Composite.WindowsAzure.WebRole.SimpleBoot\Composite.WindowsAzure.WebRole.SimpleBoot.csproj]
       GenerateTargetFrameworkMonikerAttribute:
       Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
       CoreCompile:
       Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files.
       CopyFilesToOutputDirectory:
         Composite.WindowsAzure.WebRole.SimpleBoot -> C:\Builds\1\Freja\Azure Packages 1\bin\WebRoleBoot.dll
       _CopyWebApplicationLegacy:
         Copying Web Application Project Files for Composite.WindowsAzure.WebRole.SimpleBoot
       CollectFilesFromIntermediateAssembly:
         Gather all files from Project items @(IntermediateAssembly). Adding:
         C:\Builds\1\Freja\Azure Packages 1\bin\WebRoleBoot.dll to bin\WebRoleBoot.dll
         C:\Builds\1\Freja\Azure Packages 1\bin\WebRoleBoot.pdb to bin\WebRoleBoot.pdb
       CollectFilesFromContent:

我们刚刚发现,构建服务器上缺少 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\4.5。

所以包现在从 15mb 减少到了 10mb。所以几乎与我本地机器生产的 8mb 包相同。构建服务器仍然有我本地没有的 webrole.dll 和 Microsoft.WindowsAzure.Storage.dll 的 pbd 文件。

另外,在日志中我发现 /debug:pdbonly 在 csc 编译命令中:

CoreCompile:
         C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE /highentropyva+ /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Composite.WindowsAzure.1.0.0.4\lib\net45\Composite.WindowsAzure.dll" /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Composite.WindowsAzure.Webrole.1.0.0.4\lib\net45\Composite.WindowsAzure.WebRole.dll" /reference:C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Microsoft.Data.Edm.5.2.0\lib\net40\Microsoft.Data.Edm.dll" /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Microsoft.Data.OData.5.2.0\lib\net40\Microsoft.Data.OData.dll" /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Unity.3.0.1304.1\lib\Net45\Microsoft.Practices.Unity.Configuration.dll" /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Unity.3.0.1304.1\lib\Net45\Microsoft.Practices.Unity.dll" /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Microsoft.Web.Administration.7.0.0.0\lib\net20\Microsoft.Web.Administration.dll" /reference:"C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\Microsoft.Web.Infrastructure.dll" /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0\lib\net35-full\Microsoft.WindowsAzure.Configuration.dll" /reference:"C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.2\ref\Microsoft.WindowsAzure.Diagnostics.dll" /reference:"C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.2\ref\Microsoft.WindowsAzure.ServiceRuntime.dll" /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\WindowsAzure.Storage.2.1.0.3\lib\net40\Microsoft.WindowsAzure.Storage.dll" /reference:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Newtonsoft.Json.5.0.8\lib\net45\Newtonsoft.Json.dll" /reference:C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll /reference:C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll /reference:C:\Windows\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll /reference:C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.Services.Client\v4.0_4.0.0.0__b77a5c561934e089\System.Data.Services.Client.dll /reference:C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\System.Spatial.5.2.0\lib\net40\System.Spatial.dll" /reference:"C:\Builds\1\Freja\Azure Packages 1\src\WindowsAzure\Public\packages\Microsoft.Tpl.Dataflow.4.5.11\lib\portable-net45+win8\System.Threading.Tasks.Dataflow.dll" /reference:C:\Windows\Microsoft.Net\assembly\GAC_64\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll /reference:C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll /reference:C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll /debug:pdbonly /optimize+ /out:obj\Release\WebRoleBoot.dll /subsystemversion:6.00 /target:library /utf8output Properties\AssemblyInfo.cs WebRole.cs "C:\Users\Core03TfsService\AppData\Local\Temp\.NETFramework,Version=v4.5.AssemblyAttributes.cs"

【问题讨论】:

  • 那是关于添加调试的东西。我需要编译发布版本,但 TFS 不需要,它只是给了我一个调试版本,我不知道为什么。

标签: azure tfs msbuild


【解决方案1】:

如果包含 pdb,则它是 chk/debug 构建。在构建过程模板中将构建从调试更改为发布。看看如何@http://msdn.microsoft.com/en-us/library/vstudio/dd647547.aspx#configs

【讨论】:

  • 我已将其更改为 Release 并具有完全相同的行为。如果我在我自己的机器上手动运行 msbuild,它会做对,如果我在构建服务器上手动运行它并具有完全相同的属性,它会做错。此外,在构建服务器上,它似乎发出了更多警告,它也像它使用 /Frameworks/v4.0xxx 而不是 /Frameworks/x64/。构建服务器只安装了vs2010,这重要吗?
  • tfs 构建包还包含 dll mscorlib 等,而我的本地构建没有。
  • 我会添加构建日志。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多