使用命令行发布MsBuild时出现问题单击一次

使用命令行发布MsBuild时出现问题单击一次,msbuild,clickonce,publish,Msbuild,Clickonce,Publish,我的解决方案中有csproj中的Windows应用程序,我希望使用命令行(bat、cmd)生成发布 我的脚本是(为了更好地阅读,我将\r\n): 注意:我也会尝试使用/target:publish 但在路径PublishDir或PublishUrl(C:\ClickOnce\CarWin.WebInstall\Publicacion)中,不会生成任何文件 我在这个网站和谷歌上看到了很多帖子,但我没有找到任何解决方案。我不知道这是否是一个问题,但我注意到你传递了两次/target参数 您可以使用分

我的解决方案中有csproj中的Windows应用程序,我希望使用命令行(bat、cmd)生成发布

我的脚本是(为了更好地阅读,我将
\r\n
):

注意:我也会尝试使用
/target:publish

但在路径PublishDir或PublishUrl(C:\ClickOnce\CarWin.WebInstall\Publicacion)中,不会生成任何文件


我在这个网站和谷歌上看到了很多帖子,但我没有找到任何解决方案。

我不知道这是否是一个问题,但我注意到你传递了两次/target参数

您可以使用分号分隔的示例:

/target:rebuild;publish

如果这也不起作用,您也许可以尝试通过传递来调试它

/verbosity:diag
看一看。从命令行运行ClickOnce时,基本上会忽略
PublishUrl
属性。但是,您可以通过附加的MSBuild任务轻松添加该行为

我创建了一个附加的MSBuild文件,例如
build.csproj
。这包含一个
发布任务
。此任务首先调用目标项目的常规MS构建。然后将结果复制到发布目录。现在,我从命令行调用“build.csproj”而不是reguar项目文件:

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="3.5" DefaultTargets="Publish" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <!-- project name-->
        <ProjectName>MyExampleProject</ProjectName> 
        <!--properties for the project-build-->
        <DefaultBuildProperties>Configuration=Release</DefaultBuildProperties> 
        <!-- location of the click-once stuff, relative to the project -->
        <ProjectPublishLocation>.\bin\Release\app.publish</ProjectPublishLocation> 
        <!-- Location you want to copy the click-once-deployment. Here an windows-share-->
        <ProjectClickOnceFolder>\\TargetServer\deployments</ProjectClickOnceFolder> 
      </PropertyGroup>
      <Target Name="Publish" DependsOnTargets="Clean">
        <Message Text="Publish-Build started for build no $(ApplicationRevision)" />
        <!-- run the original build of the project -->
        <MSBuild Projects="./$(ProjectName).csproj"
        Properties="$(DefaultBuildProperties)"
        Targets="Publish"/>
        <!-- define the files required for click-once-->
        <ItemGroup>
          <SetupFiles Include="$(ProjectPublishLocation)\*.*"/>
          <UpdateFiles Include="$(ProjectPublishLocation)\Application Files\**\*.*"/>
        </ItemGroup>
        <!-- and copy them -->
        <Copy
        SourceFiles="@(SetupFiles)"
        DestinationFolder="$(ProjectClickOnceFolder)\"/>
        <Copy
        SourceFiles="@(UpdateFiles)"
        DestinationFolder="$(ProjectClickOnceFolder)\Application Files\%(RecursiveDir)"/>
      </Target>
      <Target Name="Clean">
        <Message Text="Clean project" />
        <MSBuild Projects="./$(ProjectName).csproj"
        Properties="$(DefaultBuildProperties)"
        Targets="Clean"/>
      </Target>
    </Project>

MyExample项目
配置=发布
.\bin\Release\app.publish
\\TargetServer\部署

从命令行运行时,请使用PublishDir而不是PublishUrl

msbuild /target:publish /p:Configuration=Release;PublishDir=c:\playground\

您还可以更改版本,如ApplicationRevision=666;MinimumRequiredVersion=1.1

I尝试/目标:重建;仅发布和/目标:发布但不生成文件发布。有什么想法吗??谢谢使用/verbosity:diag和post运行它,输出的日志文件大小超过1MB!!!不可能在这里发布。。。问题。。我不会在cmd文件中的文件夹中发布它。。。谢谢。对于PublishDir,重要的是要有结尾“\”的可能的副本
msbuild /target:publish /p:Configuration=Release;PublishDir=c:\playground\