【问题标题】:How does the MSBuild CoreCompile Target Identify Reference AssembliesMSBuild CoreCompile 目标如何识别参考程序集
【发布时间】:2010-05-11 12:38:11
【问题描述】:

谁能阐明 TFS2010 (RC) Microsoft.TeamFoundation.Build 目标中的 CoreCompile 任务如何生成传递给 csc.exe 的程序集引用?

我们看到对 System.Xml.dll 的 2.0 和 4.0 版本的引用(以下以粗体显示),但是我们在项目程序集引用上使用了“特定版本:true”标志 btproj 文件中没有对 4.0 程序集的引用:

C:\Windows\Microsoft.NET\Framework\v3.5\Csc.exe /noconfig /nowarn:1701,1702 /platform:x86 /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.dll 
**/reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll** 
/reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.dll 
**/reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Xml.dll** 
/reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Data.dll 
/reference:C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.Services.dll 

更新:我检查了 ResolveAssemblyReferences 目标的输出(来自 Microsoft.Common.targets)并且可以看到只有项目中引用的程序集(即 2.0 框架程序集)包含在项目列表中'_ResolveAssemblyReferenceResolvedFiles'

ResolveAssemblyReferenceResolvedFiles:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Configuration.dll;
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll;
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll

但是,CoreCompile 目标仍然包括上面详述的 4.0 程序集。

更新 2:好的,我已将其追溯到 BizTalk 构建脚本中的 AddBizTalkHiddenReferences 目标中的一个模糊错误。此特定目标尝试添加其他程序集,包括上面重复的程序集。

然而,它使用“mscoree.dll”中的 GetCORSystemDirectory,它返回加载到进程中的公共语言运行时 (CLR) 的安装目录,在本例中是加载到的 4.0 框架微软构建;结果,助手认为它没有引用 System.Xml 程序集并添加它,因此重复。

【问题讨论】:

  • 如果没有将 System.Xml.dll 的特定版本设置为 true,会有什么行为?
  • 没有似乎有任何区别。
  • 我不明白的地方:你引用 System.Data.dll v4 和 System.Web.Services.dll v4 吗?
  • madgnome:不,我没有;事实上,我已经将它追溯到 BizTalk 'AddBizTalkHiddenReferences' 目标中的一个模糊错误。请参阅上面的更新。非常感谢您的帮助。
  • 干得好!这是一个偷偷摸摸的

标签: msbuild biztalk biztalk-2009 csc


【解决方案1】:

引用程序集由文件Windows\Microsoft.NET\Framework\$(Version)\Microsoft.Common.targets 中的ResolveAssemblyReferences 目标根据项目文件中定义的Reference 项解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    相关资源
    最近更新 更多