C# 单击一次名称、发布者和域。这是怎么一回事?

C# 单击一次名称、发布者和域。这是怎么一回事?,c#,vb.net,azure-devops,clickonce,C#,Vb.net,Azure Devops,Clickonce,我目前正在发布2个ClickOnce应用程序。一个在VB中,一个在C#中。我使用Azure DevOps进行构建和部署。我有2*2=4个构建: VB分期 VB制作 C#分期 C#生产 我在IIS上部署了4个网站 以下是我在其中一个网站上安装某个应用程序版本时的图片: 帮助我确定这些价值在构建或发布之前和之后的真正来源 首先在网页上:4、5和6。名称(4)、版本(5)和发布者(6)在使用click once部署的html文件中硬编码。让我们忘掉这一点,专注于1,2,3 但是,对我来说,最重要的是

我目前正在发布2个ClickOnce应用程序。一个在VB中,一个在C#中。我使用Azure DevOps进行构建和部署。我有2*2=4个构建:

  • VB分期
  • VB制作
  • C#分期
  • C#生产
  • 我在IIS上部署了4个网站

    以下是我在其中一个网站上安装某个应用程序版本时的图片:

    帮助我确定这些价值在构建或发布之前和之后的真正来源

    首先在网页上:4、5和6。名称(4)、版本(5)和发布者(6)在使用click once部署的html文件中硬编码。让我们忘掉这一点,专注于1,2,3

    但是,对我来说,最重要的是安装程序屏幕上的值:1、2和3。名称(1)、域(2)和发布者(3)来自何处

    我之所以问这个问题,是因为在我的VB构建中,一切似乎都是正确的,但在我的C#build中,我无法获得我的名称、发布者和域的正确值(1、2、3)

    我使用具有MSBuild参数的DevOps和Visual Studio生成任务:

    /target:publish 
    /p:ApplicationVersion=$(Build.BuildNumber) 
    /p:InstallURL=http://VBApp-staging.example.com/ 
    /p:PublishURL=http://VBApp-staging.example.com/ 
    /p:UpdateEnabled=true  
    /p:UpdateMode=Foreground  
    /p:ProductName="VB App Staging" 
    /p:OutputPath="$(build.ArtifactStagingDirectory)\Publish\\"
    
    我也有我的sln和项目文件属性组设置,用于暂存和发布

      </PropertyGroup>
        <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Staging|AnyCPU' ">
        <PublishUrl>http://CSApp-staging.example.com/</PublishUrl>
        <InstallUrl>http://CSApp-staging.example.com/</InstallUrl>
        <ProductName>CS Application Staging</ProductName>
        <PublisherName>Example Group</PublisherName>
        <PlatformTarget>AnyCPU</PlatformTarget>
        <DebugType>pdbonly</DebugType>
        <Optimize>true</Optimize>
        <OutputPath>bin\Release\</OutputPath>
        <DefineConstants>TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
      </PropertyGroup>
    
    
    http://CSApp-staging.example.com/
    http://CSApp-staging.example.com/
    CS应用程序转移
    示例组
    任意CPU
    pdbonly
    真的
    bin\Release\
    痕迹
    促使
    4.
    
    VB和C#都定义了类似的PropertyGroup和类似的Devops管道。现在,当我为我的VB软件运行管道时,我可以读取的(1、2、3)值似乎都是来自MSBuild重写参数的值。但是对于我的CS软件我不知道。MSbuild的参数似乎什么都没有做,而且都与我的项目定义有关

    这怎么可能?如何确保我的MSbuild参数有效。(1,2,3)中的这些值来自哪里

    这怎么可能?如何确保我的MSbuild参数有效。 (1,2,3)中的这些值来自哪里

    Value1
    来自msbuild属性
    ProductName
    Value2
    来自msbuild属性
    PublishUrl

    如果这两个属性仅适用于VB项目而不适用于C#项目,则应检查
    C#项目
    的日志,以确保选择将相应定义传递给发布进程的
    Staging
    +
    AnyCPU
    条目

    至于
    Value3
    PublisherName
    属性不用于此目的。没有VS默认选项可以控制这一点,为了得到我们需要添加自定义步骤的工作。这里有一个和一个你可以跟随。多亏了Arinerikest

    如果有任何更新,请随时通知我:)