2017-02-22 102 views
1

我在MS VisualStudio(2015)中创建了一个C#应用程序,它已签入到为我工作的公司托管的VisualStudio存储库。 我定义了一个“建立的个人资料与“持续集成”的VisualStudio的服务器上,因此它建立每一个有在检查时间。 它一直工作正常,直到如今...带CI构建的c#项目 - 引用Oracle扩展导致构建错误

我不得不添加一些代码,称为Oracle服务器,所以在我的代码我有

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

,并在顶部

using Oracle.ManagedDataAccess.Client; 

,并在我的项目我做: Add > Reference > Assemblies > Extensions > Oracle.ManagedDataAccess

因此,它都在我的开发PC上构建和运行。

在不过TeamFoundationServer,构建有消息现在失败

错误CS0246:类型或命名空间名称“甲骨文”找不到(是否缺少using指令或程序集引用?)

using行的源文件。

我认为服务器将包含Oracle扩展,因为它现在在项目文件中引用(已签入)。我需要采取另一个步骤吗?

回答

1

Extensions列表中列出的程序集是您安装到Visual Studio中的扩展程序提供的程序集(我猜你已经安装了用于Visual Studio的'Oracle Developer Tools'扩展程序)。

因为这个扩展没有安装在你的构建服务器上(也不应该),构建服务器自然会抱怨它找不到引用。

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

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

+0

这是否暗示我不应该使用“参考”并始终使用NuGet包? – Black

+0

不 - 有很多有效的用途来手动添加引用,例如,如果您想引用同一解决方案中的另一个项目,或者如果您正在使用COM组件。但是,通常情况下,如果您引用的是第三方库,那么NuGet应该是您的首选,因为所有常见的构建工具都支持它。 –