Jenkins CI上的Wix热错误

Jenkins CI上的Wix热错误,jenkins,msbuild,wix,heat,Jenkins,Msbuild,Wix,Heat,我正在构建一个依赖于wix安装项目的wix包,wix安装依赖于一个C#项目。当我在本地构建时,一切都很好,但是当我在Jenkins上构建包时,当我尝试获取一些文件时,会出现错误。加热操作是一个预构建事件 heat.exe:error HEAT5053:目录“c:\.Hudson\jobs\Project Branch\workspace\MyProject\bin\x86\Release\Help”不包含任何文件或子目录,并且由于没有保留空目录,因此没有任何可获取的内容 我在“bin\x86\R

我正在构建一个依赖于wix安装项目的wix包,wix安装依赖于一个C#项目。当我在本地构建时,一切都很好,但是当我在Jenkins上构建包时,当我尝试获取一些文件时,会出现错误。加热操作是一个预构建事件

heat.exe:error HEAT5053:目录“c:\.Hudson\jobs\Project Branch\workspace\MyProject\bin\x86\Release\Help”不包含任何文件或子目录,并且由于没有保留空目录,因此没有任何可获取的内容


我在“bin\x86\Release”中选中了
MyProject
workspace,但文件不在那里,因此我得到这个错误是有道理的。但是,如果我不构建我的安装程序项目和捆绑(引导)项目,我的文件就在那里。不知怎的,他们被我的wix项目大楼移除了。有什么想法吗?

加热命令不能是预构建事件。我有一种感觉,詹金斯不是在等我的C#项目建成,但我不完全知道它到底在做什么。我将heat改为在
afterresolverences
上运行,这仍然是一个预构建事件,这样它可以确保在尝试任何操作之前构建任何引用。这算是一个利基案例,但希望它能帮助任何遇到这个问题的人。

热指令不能是预构建事件。我有一种感觉,詹金斯不是在等我的C#项目建成,但我不完全知道它到底在做什么。我将heat改为在
afterresolverences
上运行,这仍然是一个预构建事件,这样它可以确保在尝试任何操作之前构建任何引用。这算是一个利基案例,但希望它能帮助其他遇到此问题的人

我不确定这是否相关,但我在TFS构建中遇到了类似的问题(heat.exe:error HEAT5053)。
我不得不将我的Winforms项目构建为x86。在解决方案配置管理器中将项目平台从任何CPU更改为x86,将解决方案平台保留为任何CPU,从而更改了项目属性中的生成输出路径

.csproj将项目平台更改为x86后:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
    <OutputPath>bin\x86\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

bin\x86\Release\
查出
符合事实的
pdbonly
x86
促使
最小推荐规则集
将其更改为下面的代码修复了我的问题

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

bin\Release\
查出
符合事实的
pdbonly
x86
促使
最小推荐规则集

当然,您也可以通过属性->构建->输出->输出路径来更改它。

我不确定它是否相关,但我在TFS构建中遇到了类似的问题(heat.exe:error HEAT5053)。
我不得不将我的Winforms项目构建为x86。在解决方案配置管理器中将项目平台从任何CPU更改为x86,将解决方案平台保留为任何CPU,从而更改了项目属性中的生成输出路径

.csproj将项目平台更改为x86后:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
    <OutputPath>bin\x86\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

bin\x86\Release\
查出
符合事实的
pdbonly
x86
促使
最小推荐规则集
将其更改为下面的代码修复了我的问题

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

bin\Release\
查出
符合事实的
pdbonly
x86
促使
最小推荐规则集

当然,您也可以通过属性->构建->输出->输出路径对其进行更改。

在TFS 2013中有相同的问题,这也解决了TFS 2013中的相同问题,这也解决了它