我正在尝试使用TFS和构建服务器创建构建。这是我第一次尝试使用构建服务器而且进展不顺利!
我正在使用Visual Studio 2012和TFS 2012.
该项目是用VB.Net编写的,并使用了相当多的参考资料。当我在我的开发机器上构建项目时,我没有任何问题;但后来我安装了Outlook 2013以及所有必需的组件。
当我将项目发送到构建服务器时,我收到很多关于缺少与outlook相关的类型以及几个神秘库的警告。
我不能把outlook放在构建服务器上;那我该怎么解决这个问题呢?
这里有一些消息。 er.vb(45):未定义类型“Outlook.Recipient”。 er.vb(42):未定义类型“Outlook.NameSpace”。 er.vb(39):未定义类型'Interop.Outlook.Application'。 rs.vb(1141):未定义类型'Interop.Outlook.Attachment'。 rs.vb(1144):未声明'Outlook'。由于其保护级别,它可能无法访问。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1988):
Cannot get the file path for type library "2df8d04c-5bfa-101b-bde5-00aa0044de52" version 2.7. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1988):
Cannot get the file path for type library "00062fff-0000-0000-c000-000000000046" version 9.5. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))
底部2条消息与Outlook无关,坦白说我不确定它在寻找什么?
尝试构建的最后一条消息是:
异常消息:MSBuild错误1已结束此构建。您可以在上面的消息中找到有关此错误原因的更多具体信息。 (类型BuildProcessTerminateException) 异常堆栈跟踪:在System.Activities.Statements.Throw.Execute(CodeActivityContext context) 在System.Activities.CodeActivity.InternalExecute(ActivityInstance实例,ActivityExecutor执行器,BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor,BookmarkManager bookmarkManager,Location resultLocation)
我假设我收到这个是因为各种缺失的组件? 非常感谢任何帮助。
答案 0 :(得分:2)
您很可能有许多仅存在于GAC中或位于本地程序文件树中的引用。 在文本编辑器中打开项目文件添加查看是否存在。 您需要以两种方式之一用源树中的lib引用替换它们。
Nuget包(推荐)。添加所需的包/ dll
lib文件夹(旧方法)。在源代码树中创建一个文件夹,然后放入所需的dll .-
如果您更新引用,然后更新您的scm。然后你的构建应该是自包含的并且构建。
在构建代理上安装大型软件包以修复dll引用是不好的做法,构建代理应尽可能保持干净。 源树应包含构建它所需的所有链接/信息。 (可能是.dot网络框架除外)