Deployment 使用Msbuild更改setup.exe(部署ClickOnce)的url

Deployment 使用Msbuild更改setup.exe(部署ClickOnce)的url,deployment,msbuild,clickonce,installation,bootstrapper,Deployment,Msbuild,Clickonce,Installation,Bootstrapper,我使用msbuild来使用setup-url=“location” 我使用ClickOnce发布应用程序,并希望更改setup.exe中的url <Exec Command="$(PublishDir)\setup -url=$(ProviderUrl)" /> 另一个问题是,在使用/url开关更改url后,会出现一条消息,用于手动确认签名将对程序集无效 两个问题: 如何使用setup-url=http://.... 在静音模式下??我不希望出现用于确认的消息 如何再次对set

我使用msbuild来使用setup-url=“location”

我使用ClickOnce发布应用程序,并希望更改setup.exe中的url

<Exec Command="$(PublishDir)\setup -url=$(ProviderUrl)" />

另一个问题是,在使用/url开关更改url后,会出现一条消息,用于手动确认签名将对程序集无效

两个问题:

  • 如何使用setup-url=http://.... 在静音模式下??我不希望出现用于确认的消息

  • 如何再次对setup.exe进行签名

  • 有什么解决办法吗??谢谢你,先生

    我的msbuild

    <Target Name="PublishClickOnce">
    
    <Exec Command="$(PublishDir)\setup -url=$(ProviderUrl)" /> 
    
    <Exec Command="$(Mage) -u $(PublishDir)\Frk.Security.CarWin.application -pu $(ProviderUrl)" /> 
    
    <Exec Command="$(Mage) -u $(PublishDir)\Frk.Security.CarWin.application -cf $(CertDir)\Frk.Security.CarWin_TemporaryKey.pfx" /> 
    
     </Target>
    
    
    

    需要帮忙吗?提前感谢。

    这是我们如何使用TeamBuild为多个环境构建ClickOnce应用程序

    你可以读我原来的博客

    这就是如何从TeamBuild项目文件中调用ClickOnce构建(为便于阅读,添加了换行符):

    
    
    对于您想要的每个环境或配置更改,您都可以使用它。下面是BuildClickOnce.targets文件(为了可读性增加了换行符):

    
    $(ClickOnCurl)$(ClickOnceAppName)。应用程序
    $(PublishDir)
    C:\Program Files\Microsoft SDK\Windows\v6.0A
    Microsoft.NET Framework 2.0
    
    如果要更改url,最好执行以下操作:

  • 编辑.application并替换deploymentProvider中的url
  • 使用“从”生成新的setup.exe
  • 签名应用程序和设置

  • 我发现使用-url参数使设置在我签名后无效

    这不是与昨天的问题重复吗?
    <Msbuild
          Projects="$(SolutionRoot)\ConfigFiles\BuildClickOnce.targets"
          Targets="BuildClickOnce"
          Properties="SourceDir=$(SourceDir);PublishDir=$(PublishDir);                      ClickOnceAppName=$(ClickOnceAppName);ClickOnceExeFile=$(ClickOnceExeFile);                      ClickOnceProduct=$(ClickOnceProduct);Company=$(Company);                      ClickOnceDescription=$(ClickOnceDescription);ClickOnceUrl=$(ClickOnceUrl);                      VersionNumber=$(VersionNumber);SigningCert=$(SigningCert);                      SigningCertPassword=$(SigningCertPassword)"
            />
    
    <?xml version="1.0" encoding="utf-8"?>
    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets" />
        <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
        <Import Project="$(MSBuildExtensionsPath)\Microsoft\SDC\Microsoft.Sdc.Common.tasks"/>
    
    
        <Target Name="BuildClickOnce" DependsOnTargets="">
    
            <PropertyGroup>      
                <ClickOnceApplicationUrl>$(ClickOnceUrl)$(ClickOnceAppName).application</ClickOnceApplicationUrl>
                <AppPublishDir>$(PublishDir)</AppPublishDir>
                <SdkPath>C:\Program Files\Microsoft SDKs\Windows\v6.0A</SdkPath>
            </PropertyGroup>
    
            <BuildStep
              TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
              BuildUri="$(BuildUri)"
              Message="Buildning $(ClickOnceAppName) ClickOnce version: $(VersionNumber)">
                <Output TaskParameter="Id" PropertyName="StepId" />
            </BuildStep>
    
    
        <CallTarget Targets="UpdateWebPage" />
    
            <!--
      ************************************************
      Generate application manifest
      ************************************************
      -->
            <Exec
            Command="mage.exe -New Application -TrustLevel FullTrust                  -ToFile &quot;$(AppPublishDir)\$(ClickOnceExeFile).manifest&quot;                  -Name &quot;$(ClickOnceAppName)&quot; -Version &quot;$(VersionNumber)&quot;                 -FromDirectory &quot;$(AppPublishDir)&quot;"
            WorkingDirectory="$(SdkPath)\Bin"/>
    
            <!--
      ************************************************
      Signing application manifest
      ************************************************
      -->
            <Exec Condition="'$(SigningCertPassword)'==''"
              Command="mage.exe -Sign &quot;$(AppPublishDir)\$(ClickOnceExeFile).manifest&quot;                    -CertFile &quot;$(SigningCert)&quot;"
              WorkingDirectory="$(SdkPath)\Bin"  />
    
            <Exec Condition="'$(SigningCertPassword)'!=''"
                Command="mage.exe -Sign &quot;$(AppPublishDir)\$(ClickOnceExeFile).manifest&quot;                      -CertFile &quot;$(SigningCert)&quot; -Password &quot;$(SigningCertPassword)&quot;"
                WorkingDirectory="$(SdkPath)\Bin"/>
    
            <!--
      ************************************************
      Renaming source files to .deploy
      ************************************************
      -->
            <ItemGroup>
                <SourceFilesToRename Include="$(AppPublishDir)\**\*.*"                  Exclude="$(AppPublishDir)\*.manifest;$(AppPublishDir)\*.htm"/>
                <SourceFilesToDelete Include="$(AppPublishDir)\**\*.*"                  Exclude="$(AppPublishDir)\*.application;$(AppPublishDir)\*.manifest;$(AppPublishDir)\*.htm"/>
            </ItemGroup>
    
            <Copy
                SourceFiles="@(SourceFilesToRename)"
                DestinationFiles="@(SourceFilesToRename->'$(AppPublishDir)\%(RecursiveDir)%(Filename)%(Extension).deploy')"
            />
    
            <Delete Files="@(SourceFilesToDelete)"/>
    
    
            <!--
      ************************************************
      Generating deployment manifest
      ************************************************
      -->
    
            <GenerateDeploymentManifest
              MapFileExtensions="true"
              AssemblyName="$(ClickOnceAppName).application"
              AssemblyVersion="$(VersionNumber)"
              MinimumRequiredVersion="$(VersionNumber)"
              DeploymentUrl="$(ClickOnceApplicationUrl)"
              Description="$(ClickOnceDescription)"
              Product="$(ClickOnceProduct)"
              Publisher="$(Company)"
              SupportUrl="$(SupportUrl)"
              EntryPoint="$(AppPublishDir)\$(ClickOnceExeFile).manifest"
              Install="true"
              UpdateEnabled="true"
              UpdateMode="Foreground"
              OutputManifest="$(PublishDir)\$(ClickOnceAppName).application"/>
    
            <!--
      ************************************************
      Signing application manifest
      ************************************************
      -->
            <Exec Condition="'$(SigningCertPassword)'==''"
                Command="mage.exe -Sign &quot;$(PublishDir)\$(ClickOnceAppName).application&quot;                     -CertFile &quot;$(SigningCert)&quot;"
                WorkingDirectory="$(SdkPath)\bin"/>
            <Exec Condition="'$(SigningCertPassword)'!=''"
                Command="mage.exe -Sign &quot;$(PublishDir)\$(ClickOnceAppName).application&quot;                     -CertFile &quot;$(SigningCert)&quot; -Password &quot;$(SigningCertPassword)&quot;"
                WorkingDirectory="$(SdkPath)\bin"/>
    
    
            <!--
      ************************************************
      Generating Bootstrapper
      ************************************************
      -->
            <ItemGroup>
                <BootstrapperFile Include="Microsoft.Net.Framework.2.0">
                    <ProductName>Microsoft .NET Framework 2.0</ProductName>
                </BootstrapperFile>
            </ItemGroup>
    
    
            <GenerateBootstrapper
              ApplicationFile="$(ClickOnceAppName).application"
              ApplicationName="$(ClickOnceAppName)"
              ApplicationUrl="$(ClickOnceUrl)"
              BootstrapperItems="@(BootstrapperFile)"
              Culture="en"
              FallbackCulture="en-US"
              CopyComponents="true"
              Validate="false"
              Path="$(SdkPath)\Bootstrapper"
              OutputPath="$(PublishDir)"/>
    
    
            <BuildStep
              TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
              BuildUri="$(BuildUri)"
              Id="$(StepId)"
              Status="Succeeded"/>
    
            <OnError ExecuteTargets="MarkBuildStepAsFailed" />
        </Target>
    
        <!--
      ************************************************
      Marks a buildstep as failed
      ************************************************
      -->
        <Target Name="MarkBuildStepAsFailed">
            <BuildStep
              TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
              BuildUri="$(BuildUri)"
              Id="$(StepId)"
              Status="Failed"/>
        </Target>
    
        <!--
      ************************************************
      Updating web page
      ************************************************
      -->
        <Target Name="UpdateWebPage">
            <ItemGroup>
                <WebPage Include="$(PublishDir)\publish.htm" />
            </ItemGroup>
    
            <RegEx
              Condition="Exists(@(WebPage))"
              Path="@(WebPage)"
              RegularExpression="#VERSION#"
              NewValue="$(VersionNumber)"
              Force="true"/>
        </Target>
    </Project>