从Visual Studio构建定义UI添加MSBuild的引用搜索文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Visual Studio构建定义UI添加MSBuild的引用搜索文件夹相关的知识,希望对你有一定的参考价值。

我正在为存储在TFS2015中的.net解决方案(另一家公司)配置XAML构建定义。

该解决方案使用安装在开发人员计算机上但不存在于Build服务器中的软件X的Dll引用。 (FTS和Build服务器在许多客户端之间共享)。

我可以选择在文件夹中添加所需的Dll以及源代码,但我没有选项来修改.csproj文件。

在Build定义中,我尝试在MSBuild参数字段中添加以下内容:

/p:AdditionalLibPaths=$/[long tfs path here]/CommonDlls

/p:AdditionalLibPaths=$(SourceDir)/CommonDlls

但它不起作用。

理想情况下,我想从源代码的根目录中指定一个相对文件夹。 (静态路径可能有效,但仅适用于一个构建服务器和代理,这不是共享构建的目标)。

关于如何定义此参数的任何想法?

还可以选择添加预构建脚本路径。我可以存储脚本文件和源代码。有关如何编写此类脚本文件的任何指针?

答案

你真的不需要一个脚本。这项工作有两件事要做。

第一步是确保将DLL下载到代理工作文件夹,最简单的方法是在构建工作区中映射$/[long tfs path here]/CommonDlls;这在“构建定义”的“源设置”选项卡中指定。注意在映射中使用$(SourceDir)标记(请参阅here)。

第二点是使用对下载文件夹的正确引用:使用TF_BUILD_SOURCESDIRECTORY变量(有关完整列表,请参阅here)。

所以,如果你添加了一个映射

$/[long tfs path here]/CommonDlls - > $(SourceDir)CommonDlls

使用$(TF_BUILD_SOURCESDIRECTORY)CommonDlls

另一答案

我花了将近20次试验来获得正确的试验,这一切都始于考虑所有其他目录的警告需要多长时间,我可以忽略它但是这里首先是警告

C: Program Files(x86) MSBuild 14.0 bin Microsoft.Common.CurrentVersion.targets(1820,5):警告MSB3245:无法解析此引用。无法找到程序集“nameOfDllFile”。检查以确保磁盘上存在程序集。如果您的代码需要此引用,则可能会出现编译错误。

这是让它发挥作用的论据

/p:ReferencePath="$(build.sourcesdirectory)Binaries"

其中二进制文件相当于问题中的CommonDlls,这完全是因为MSBuild版本之间的模糊文档和差异,我的是14.0(VS2015)。

以上是关于从Visual Studio构建定义UI添加MSBuild的引用搜索文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio测试运行:从测试中心的测试计划运行编码的UI自动化测试

Visual Studio 2015 中的错误:错误 MSB4166:子节点“3”过早退出。关机

Visual Studio:error MSB8020

在 Visual Studio 中将自定义代码添加到 Qt UIC 生成的文件

MSB3021 在 Visual Studio 中运行 Service Fabric 应用时无法复制文件找不到部分路径错误

visual studio 2019 error MSB3073 extied with code 0