TFS 2012如何使用外部dll引用构建解决方案

时间:2012-10-30 06:17:41

标签: tfs tfs2012 tfsbuild

我是TFS的新手,尝试在TFS 2012上设置构建。

我的目录结构

Web
   _Common
       thirdparty
          Telerik
             RadControls
                 2011.3.1305.40
                     Bin40 (All Dll's)
       Utilities.NET4.0
          Utilities(VB Project folder)
             All Files & Folders 
             Utilities.vbproj

   FOO(Folder Name which is also application Name)
      1(Custom Versions 1 per client Bases)
          FOO -All Files & Folders 
          FOO.sln
      2(Custom Versions 2 per client Bases)
          FOO
          FOO.sln
      3(Custom Versions 3 per client Bases)
          FOO -All Files & Folders 
          FOO.sln

以下是我的自定义版本1的解决方案文件

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{E24C65DC-7377-472B-9ABA-F184B08FC61A}") = "FOO", "http://localhost/FOO/1/FOO", "{1B4DD106-50B1-44E1-AB1F-E9F175E995F8}"
    ProjectSection(WebsiteProperties) = preProject
        UseIISExpress = "false"
        TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
        ProjectReferences = "{A6EE09B0-8E91-4D7F-A513-4A45A8EF93A8}|Agility.Web.Utilities.dll;"
        Debug.AspNetCompiler.VirtualPath = "/FOO/1/FOO"
        Debug.AspNetCompiler.PhysicalPath = "FOO\1\FOO\"
        Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\FOO\1\FOO\"
        Debug.AspNetCompiler.Updateable = "true"
        Debug.AspNetCompiler.ForceOverwrite = "true"
        Debug.AspNetCompiler.FixedNames = "false"
        Debug.AspNetCompiler.Debug = "True"
        Release.AspNetCompiler.VirtualPath = "/FOO/1/FOO"
        Release.AspNetCompiler.PhysicalPath = "FOO\1\FOO\"
        Release.AspNetCompiler.TargetPath = "PrecompiledWeb\FOO\1\FOO\"
        Release.AspNetCompiler.Updateable = "true"
        Release.AspNetCompiler.ForceOverwrite = "true"
        Release.AspNetCompiler.FixedNames = "false"
        Release.AspNetCompiler.Debug = "False"
        SlnRelativePath = "FOO\1\"
    EndProjectSection
EndProject
Project("{F184B08F-C81C-45F6-A57F-F184B08FF28F}") = "Utilities", "..\..\_Common\Utilities-.NET4.0\Utilities\Utilities.vbproj", "{A6EE09B0-8E91-4D7F-A513-4A45A8EF93A8}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {1B4DD106-50B1-44E1-AB1F-E9F175E995F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {1B4DD106-50B1-44E1-AB1F-E9F175E995F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {1B4DD106-50B1-44E1-AB1F-E9F175E995F8}.Release|Any CPU.ActiveCfg = Debug|Any CPU
        {1B4DD106-50B1-44E1-AB1F-E9F175E995F8}.Release|Any CPU.Build.0 = Debug|Any CPU
        {A6EE09B0-8E91-4D7F-A513-4A45A8EF93A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {A6EE09B0-8E91-4D7F-A513-4A45A8EF93A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {A6EE09B0-8E91-4D7F-A513-4A45A8EF93A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {A6EE09B0-8E91-4D7F-A513-4A45A8EF93A8}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
EndGlobal

注意事项:

  • 本地计算机上的IIS设置
    • FOO = WebApplication
    • Utilities =虚拟文件夹

我如何实现这一点:FOO参考了Bin40下的dll

我已尝试实现此目的但我无法使用默认模板运行它。

感谢您的帮助。

解决方案:

我更新了构建定义。

在Workspace中,我映射了工作文件夹

 $/Web/Main/_Common: $(SourceDir)\_Common
 $/Web/Main/_Common/thirdparty/Telerik/RadControls/2011.3.1305.40/Bin40:$(SourceDir)\FOO\1\FOO\Bin
 $/Web/Main/FOO/6: $(SourceDir)\FOO\6

1 个答案:

答案 0 :(得分:1)

确保文件引用使用项目文件中的相对路径。

另外,请确保构建的工作区映射正在从示例中下载整个Web根目录。

如果这不起作用,我们需要查看您获得的错误,以及您如何引用相关的DLL。