.net - 为什么环境变量 BUILD_NUMBER 在构建过程中会干扰 .NET 引用?
问题描述
我从命令行调用 MSBuild:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" /t:clean,build /p:configuration="Release" /p:platform="Any CPU" MySolution.sln
该解决方案包含多个项目和 nuget 包引用。例如 Project1 通过 nuget 引用 log4net。Project2 引用 Project1。
引用被配置为本地复制,因此我在 Project1 的 bin 文件夹以及 Project2 的 bin 文件夹中获得了 log4net DLL。
但是,当我从 Jenkins 触发构建时,我总是会错过辅助引用,即在 Project2 的 bin 文件夹中,我找到了 Project1 的 DLL,但没有找到 log4net——尽管 log4net 存在于 Project1 的 bin 文件夹中。
我能够将原因追溯到 Jenkins 自动设置的环境变量 BUILD_NUMBER(例如 10)的存在。我在控制台窗口中进行了测试:如果它在那里,那么问题就如所描述的那样出现。如果不存在,所有 DLL 都在我期望的位置。
我该如何继续?欢迎任何建议!
提前致谢!
莱因哈德
解决方案
抱歉打扰了,我自己造成了这个问题,就像这样:
我为 Project1 创建了一个构建后事件挂钩,它仅在设置了环境变量 BUILD_NUMBER 时才进行一些二进制保护。完成后,MSBuild 在 Project1 的 ResolveAssemblyReferences 步骤中失败,因为它无法发现受保护程序集中的引用。
学过的知识 ;)
推荐阅读
- python - 将昵称与 Pandas 中的名称匹配
- git - 特定数量的提取后,带有 Jenkins 的 Git 插件在“git reset --hard”中失败
- firebase - 在不使用 .getDownloadUrl 的情况下访问 Firebase 存储映像
- list - 在另一个布局中呈现的布局中连续绑定列表项值,从列表到页面
- google-chrome - 如何将 Vue.js Chrome 开发工具与 jsFiddle 一起使用?
- javascript - 如何制作保持当前css样式的画布截图?- 角/javascript
- python - Python 子进程失败,尽管它在命令行中工作
- java - Chromium - 在 Android Studio 中构建 Chome_public_apk 时出错
- json - 如何在结构非线性的情况下使用 jq 解析 json
- excel - 获胜/平局/输球数的 DAX 公式