C# 单击一次名称、发布者和域。这是怎么一回事?
我目前正在发布2个ClickOnce应用程序。一个在VB中,一个在C#中。我使用Azure DevOps进行构建和部署。我有2*2=4个构建: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 但是,对我来说,最重要的是
/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默认选项可以控制这一点,为了得到我们需要添加自定义步骤的工作。这里有一个和一个你可以跟随。多亏了Arin和erikest
如果有任何更新,请随时通知我:)