使用v4.0发布Clickonce项目MSBuild在64位计算机上失败

时间:2011-08-12 12:22:38

标签: .net msbuild 64-bit clickonce cruisecontrol.net

我有这个业务应用程序,一个与WCF服务通信的winform客户端。客户端的目标是.net 3.5框架,IDE是Visual Studio 2010。 该项目包含对Microsoft Internet Controls和Interop.SHDocVw的引用,它是COM对象。我们的项目目标架构设置为“AnyCPU”

我们使用CC.net buildserver将应用程序部署到我们的不同环境,Test,QA和Production。

为生产环境构建并在64位Windows 7计算机上安装产品时,由于格式不正确,无法加载“SHDocVw”。在32位XP机器上安装时,它就像魅力一样。

我知道我可以尝试将我的整个解决方案设置为“x86”,而不是“AnyCPU”,但事实是,当使用以前版本的msbuild(v3.5)时,它就像魅力一样。为什么?这是msbuild.exe的v4.0版本中的错误吗?

CC.net中的任务看起来像这样

        <!-- Deploy of clickonce -->
        <msbuild>
            <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
            <workingDirectory>****</workingDirectory>
            <projectFile>PublishApplication.xml</projectFile>
            <buildArgs>
                /p:ProjectToPublish=******
                /p:Configuration=Release
                /v:diag
                /p:ApplicationVersion=1.0.1.$[$CCNetLabel]
                /p:InstallUrl="*****"
                /p:NewVersionDeployFolder="*****_$[$CCNetLabel]"
                /p:ProductName="*****Test"
                /p:PublisherName="*****"
                /p:UpdateEnable="true"
                /p:UpdateRequired="true"
                /p:MinimumRequiredVersion=1.0.1.$[$CCNetLabel]
            </buildArgs>
            <timeout>900</timeout>
            <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
        </msbuild>

PublishApplication.xml执行了一些操作,例如创建文件夹和复制文件,但构建本身就是使用此任务

<Target Name="PublishApplication" DependsOnTargets="Clean">
    <Message Text="Publishing application"/>
    <MSBuild Projects="$(ProjectToPublish)" Targets="Publish"  />
</Target>

0 个答案:

没有答案