[英]How to synchronise the publish version to the assembly version in a .NET ClickOnce application?
[英]How to publish a beta version of a ClickOnce application?
我想在每次構建應用程序時發布它的beta版本,以便用戶可以訪問“ beta”版本並在常規發行版之前測試功能。
我嘗試通過在運行[product] -beta時覆蓋ProductName來做到這一點。 問題在於發布過程仍在創建[product] .application,似乎ClickOnce魔術不知道一個URL上的[product] .application和另一個URL上的[product] .application之間的區別。
關於如何解決這個問題的任何想法嗎?
我遇到了一個非常類似的問題,這是我想出的解決方案。
我將所有GUI表單都放入了一個DLL(包括主要的啟動表單)中。 然后,我創建了2個引用我的GUI dll的EXE項目。 一個名為產品,另一個命名為ProductBeta。
EXE中的代碼實際上在兩者之間是相同的。 即Application.Run(new MainForm())。
然后,我將它們設置為發布到同一共享的子目錄中。
這很煩人並且有一些開銷,但是結果效果很好。
如您所知,僅修改產品名稱是不夠的。 您需要修改程序集名稱。
最重要的是要支持多種環境-這不是內置的,並且如果您嘗試將具有相同部署名稱的兩個不同的ClickOnce構建部署到不同的站點,則最新的構建將具有優先權並有效覆蓋現有的部署。桌面。
解決方法相對簡單-您需要為每個構建提供不同的部署名稱。 像這樣-
<MSBuild
Projects="ClickOnce.csproj"
Targets="Publish"
Properties="
MinimumRequiredVersion=$(MinimumRequiredVersion);
ApplicationVersion=$(ApplicationVersion);
ApplicationRevision=$(ApplicationRevision);
CodeBranch=$(CodeBranch);
DeployEnv=$(DeployEnv)
AssemblyName=ClickOnce.$(DeployEnv);
PublishUrl=$(PublishUrl);
ProductName=ClickOnce $(CodeBranch) $(DeployEnv)" />
這種方法的局限性在於項目引用將不再起作用。 使用基於文件的程序集引用,就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.