【问题标题】:How to give relative path in msbuild file?如何在 msbuild 文件中给出相对路径?
【发布时间】:2015-06-16 04:05:30
【问题描述】:

我正在编写一个 msbuild 文件来使用 galio 运行测试。现在,我需要提供

<UsingTask AssemblyFile="..\dll\Gallio.MSBuildTasks.dll" TaskName="Gallio" />

这不起作用,当我提供完整路径 c:\program file\galio\bin 时,它可以工作。但是,我想在 Gallio.MSBuildTasks.dl 所在的源代码管理中提供我的 dll 文件夹的路径。如何这样做?

【问题讨论】:

    标签: msbuild


    【解决方案1】:

    路径是相对于什么? 可能不是从您执行 msbuild 的位置。 如果路径是相对于您的 MSBuild 文件所在的位置,请尝试将相对路径与 MSBuild 文件路径连接起来:

    <PropertyGroup>
       <AssemblyFileName>$(MSBuildProjectDirectory)\..\dll\Gallio.MSBuildTasks.dll</AssemblyFileName>
    </PropertyGroup>
    <UsingTask AssemblyFile="$(AssemblyFileName)" TaskName="Gallio" />
    

    有帮助吗?

    【讨论】:

    • 实际上 MSbuild 文件位于名为 Tests 的文件夹中。dll 文件夹是该文件夹之上的一个层次
    • AssemblyFile="&amp;(AssemblyFileName)" 应该是 AssemblyFile="$(AssemblyFileName)"(美元符号而不是 & 符号)
    【解决方案2】:

    确保您正确编写了相对路径“..\dll\Gallio.MSBuildTasks.dll”。 我已经尝试过了,我在指定我的 dll 的相对路径时没有问题。如果路径不正确,则在运行构建文件时应该会收到一条错误消息。如果它不起作用,您可以发布使用相对路径时遇到的错误。

    【讨论】:

    • (RunTests target) -> F:\project\trunk\prj\bll\runtests.prj(15,9): error : 在执行 Gallio 任务期间发生意外错误。 F:\project\trunk\prj\bll\runtests.prj(15,9):错误:Run ntimeException:无法解析服务类型“Gallio.Runner.Projects.ITestProjectManager”的组件,因为似乎没有任何为该服务类型注册并启用了组件。\r F:\project\trunk\prj\bll\runtests.prj(15,9): 错误:a t Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveNonDisabledDescriptor(Type serviceType)\ r
    【解决方案3】:

    你可以使用$(MSBuildThisFileDirectory),根据this MSDN page

    【讨论】:

      猜你喜欢
      • 2017-10-31
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多