使用 CI 构建的 C# 项目 - 对 Oracle 扩展的引用导致构建错误

标签 c# oracle visual-studio

我在 MS VisualStudio (2015) 中构建了一个 C# 应用程序,并将其 checkin 到为我工作的公司托管的 VisualStudio 存储库中。 我在 VisualStudio 服务器上定义了一个“构建”配置文件,并启用了“持续集成”,因此每次 checkin 时都会构建它。 到目前为止一直运行良好...

我必须添加一些调用 Oracle 服务器的代码,所以在我的代码中我有

OracleConnection conn = new OracleConnection(connString);
...

在顶部

using Oracle.ManagedDataAccess.Client;

在我的项目中我做了: 添加 > 引用 > 程序集 > 扩展 > Oracle.ManagedDataAccess

所以,这一切都在我的开发 PC 上构建和运行。

但是,在 TeamFoundationServer 上,构建现在失败并显示消息

Error CS0246: The type or namespace name 'Oracle' could not be found (are you missing a using directive or an assembly reference?)

在源文件的 using 行上。

我假设服务器将包含 Oracle 扩展,因为它现在在项目文件(已 checkin )中引用。我还需要采取其他步骤吗?

最佳答案

扩展列表中列出的程序集是由您安装到 Visual Studio 中的扩展提供的(我猜测您已经安装了“Oracle Developer Tools for Visual Studio”扩展)。

因为此扩展尚未安装在您的构建服务器上(也不应该安装),所以构建服务器自然会提示它找不到引用。

解决方案是删除您添加的引用,而是添加对包含 Oracle 驱动程序的 NuGet 包的引用。这看起来是正确的:https://www.nuget.org/packages/Oracle.ManagedDataAccess/

然后,您的构建服务器将像获取任何其他程序集一样获取 NuGet 包。

关于使用 CI 构建的 C# 项目 - 对 Oracle 扩展的引用导致构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42392615/

相关文章:

c# - 匿名类型 VS 局部变量,什么时候应该使用?

visual-studio - 通过Package Manager控制台运行清理,构建和重建

visual-studio - 在 Visual Studio 生成后事件 : Access is denied 中复制文件

java - 为什么我在 Oracle DB 和 Java 中有不同的时区偏移结果?

visual-studio - 在 Visual Studio 编辑器中是否有一个键盘命令可以跳转到匹配的括号?

c# - 强制仅从序列化中调用构造函数

c# - 应用程序的沙盒虚拟机(C++ 与 C#)

c# - 从应用程序 : Change working directory 运行 SFX

sql - 使用 Merge 语句到触发器中

oracle - 在plsql中使用for循环更新