2009-05-11 147 views
5

我有一个安装和部署项目,我们构建服务器上,报告中总结了以下几点:Visual Studio安装和部署构建失败,并没有错误

==========全部重建:25成功,2失败,0已跳过==========

我不知道这两个是失败了,但我相信他们中的一个是vdproj项目,因为如果我在没有安装程序的情况下运行构建,则根本没有报告错误。 “打包文件”消息与我的PC上的输出相匹配,构建成功完成。

我相信这是一个环境问题,只是在任何地方都没有记录问题的日志 - 只是摘要中的数字。

更奇怪的是,setup.exemyapp.msi文件似乎生成很好。我无法弄清楚那些失败的项目,因为没有提及失败的项目。我所知道的是,如果我建立了除安装项目之外的解决方案,总结表明没有错误。

任何人都可以想到任何检查?

回答

11

到底答案是,这是一个已知的bug:https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=317870

答案是修改项目文件(* .csproj的)含有的LINQ to SQL的dbml文件删除一些东西,如下:

  1. 关闭VS 2008
  2. 打开包含在记事本中的LINQ to SQL项目的项目文件。
  3. 删除下列行:
    [的ItemGroup]
    [服务包括= “{3259AA49-8AA1-44D3-9025-A0B520596A8C}”/]
    [/的ItemGroup]

安装项目将现在成功建立 。但是,如果您在VS 2008中双击DBML文件以打开 设计器,则设置项目 将停止再次生成。上述 线做被重新添加到 项目文件,但设置项目 将停止生成。只需 重新启动VS 2008,它将再次运行 - 直到您再次打开DBML设计器。一旦安装项目失败 由于这个问题就永远不会成功构建 后,直到你重新启动 VS 2008

我最终从MS Connect forum topic找到了答案(或者至少是链接到的答案)。这是documented workaround

+0

这个Microsoft bug页面上列出的另一个解决方法适用于我:右键单击该解决方案并单击Visual Studio中的“Clean Solution”。 – 2009-11-12 01:51:16

+1

您可以在VS中编辑csproj文件,而无需关闭解决方案:1.从项目上下文菜单中卸载项目,2.从上下文菜单中打开VS中的csproj文件,3.编辑并保存,4.从上下文菜单重新打开该项目。 – Richard 2010-10-19 09:40:12

0

(你没有说什么样的生成服务器的你。因为你标记的“.NET”我会假设你正在使用TFS和团队建设。)

团队建设使用的MSBuild(它真正能把的MSBuild)。 MSBuild无法构建vdproj文件。只有Visual Studio可以做到这一点。

因此,如果您要包含包含vdproj文件的解决方案,那么它们将会失败。 (请查看vdproj项目的构建日志以查看它们是否失败。)

阻止注册失败的一种方法是创建一个配置,为您的Team Build编译的配置不包含vdproj文件(如果失败的项目真的让你烦恼)。

获取您的msi和exe文件的最佳方式是在您的vdproj项目上运行Visual Studio。构建完成后添加自定义目标,并在项目上手动调用Visual Studio。 (我不知道为什么你的msi和exe文件正在生成,除非你这样做。)

作为另一种选择考虑Windows Installer XML(WIX)。版本3(非常接近完整版本并具有稳定的测试版)使用MSBuild。这意味着您的解决方案可以通过Team Build进行编译,无需任何特殊操作。唯一的缺点是WIX无法以'任何CPU'为目标,但只要它针对特定的平台,它就可以成为'任何CPU'的解决方案级别目标的一部分。

+0

构建服务器本身是FinalBuilder,虽然这里没有讨论,因为问题发生在构建服务器机器上的VS中。 – 2009-05-15 12:24:05

0

是的,我以前有过这个。

不知道你的设置,不过试试这个是合适的:

首先,在您的解决方案右键单击文件>属性>配置

在那里,使用构建勾选框与实验项目建立在一起,哪些没有。

另外,在您的文件系统中,删除所有项目的调试/发布文件夹。

最后,根据我的经验,这个错误通常是由一个损坏的web.config造成的。

让我知道你如何去

相关问题