我試圖使用Click-Once發佈,麻煩是,它也發佈了配置文件,它具有我在開發計算機上使用的連接字符串,而不是正確的我在生產環境中使用的那些。我怎樣才能防止配置文件發佈超過第一次?我試圖在屬性中不包含它在發佈列表中,但沒有選擇這樣做。防止從點擊一次部署發佈配置文件
回答
配置文件是Deployment的一部分,因爲它們存儲了在Addin中使用的所有必要設置。
如果我理解正確的問題,那麼,你要使用一些設置,比如HOSTURL=http://example.com
當加載項是生產環境和HOSTURL=http://localhost
當你正在開發的加載項和你期望這一切自動無需人爲參與。
然後,您可以嘗試下列操作之一:
[1]試着找到ClickOnceLocation
和使用的設置取決於價值ClickOnceLocation
。 假設您在開發/調試Addin時,ClickOnceLocation
包含"Debug"
。
//CodeBase is the location of the ClickOnce deployment files
Uri uriCodeBase = new Uri(assemblyInfo.CodeBase);
string ClickOnceLocation = Path.GetDirectoryName(uriCodeBase.LocalPath.ToString());
if(ClickOnceLocation.Contains("Debug"))
{
URL = "http://localhost";
}
else
{
URL = //from app.config
}
[2] Updating the app.config by using build configurations
有一些技巧可以使用,這樣的價值觀,以生產服務器不同的文件是否會在拿起公佈。
您可以有兩個單獨的配置文件,一個用於本地部署/調試,另一個用於應用程序的實際發佈或生產版本。調試配置文件可能指向本地主機服務器,而真正發佈的配置文件可能指向真實的服務器。然後,您可以配置構建配置,以便根據Active構建配置選擇適當的配置文件。
要將兩個不同的app.config文件添加到項目中,可以在項目文件中更新對app.config的引用。在app.config在項目文件(vbproj或的csproj)具有以下XML定義:
<ItemGroup>
…
<None Include=」app.config」 />
</ItemGroup>
可能存在與在app.config節點沿的ItemGroup其他節點。刪除剛剛從該節點的ItemGroup和的app.config創建節點下的新的ItemGroup與下面的XML:
<ItemGroup Condition=」 ‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU’ 「>
<None Include=」app.config」 />
</ItemGroup>
<ItemGroup Condition=」 ‘$(Configuration)|$(Platform)’ == ‘Release|AnyCPU’ 「>
<None Include=」publishedapp.config」 />
</ItemGroup>
這基本上意味着,當主動配置被設置爲常規app.config文件將被使用當活動配置設置爲「發佈」時,將使用調試和修改的app.config以及存儲在項目「發佈」子文件夾中的實際生產變量。
您可以更改ItemGroup條件以匹配您可能已經定義的其他構建配置。一種可能性是根據「發佈」配置定義單獨的「發佈」配置,但僅在實際發佈應用程序時使用。
此過程的額外免責聲明是VS項目系統本身和設計人員不知道額外的app.config文件; Visual Studio只知道原始文件。具有生產環境值的修改過的app.config僅由msbuild進程使用。因此,如果通過設置設計器更新主app.config,修改後的app.config將不會更新,您必須手動更新文件。
一旦您正確配置了項目,您可以簡單地在不同的構建配置之間切換,以更改配置文件並從Visual Studio發佈應用程序,而無需通過更新和重新簽名過程。
非常感謝所有Answerers,我會研究這些東西,並將它們標記出來 – burech
- 1. 點擊一次部署時.appref-ms文件的位置
- 2. 點擊一次發佈addtional文件停止使用VS 2012
- 3. 一次部署到多個雲服務的Azure發佈配置文件
- 4. 防止多次點擊發起動畫
- 5. 防止點擊功能多次觸發
- 6. 防止$(「IMG」),點擊觸發幾次
- 7. CustomDialog - 防止多次點擊
- 8. 防止多次點擊
- 9. 防止多次點擊一個鏈接
- 10. jQuery - 防止第一次點擊激活
- 11. .NET SQLite和點擊一次部署
- 12. 點擊一次 - CD部署不更新
- 13. Visual Studio 2013點擊一次部署
- 14. 點擊一次部署/安裝項目
- 15. 點擊一次部署錯誤
- 16. Visual Studio點擊一次部署問題
- 17. 將文件添加到點擊一次部署
- 18. 防止點擊觸發()
- 19. 發佈配置文件不部署在TFS上構建
- 20. 使用發佈配置文件更改部署的對象
- 21. 防止小部件在短時間內多次點擊
- 22. 防止轉換文件被部署
- 23. 防止在部署時覆蓋文件?
- 24. 點擊事件防止鼠標觸發
- 25. 從VSPackage部署配置文件?
- 26. 防止'點擊'事件發射多次+問題與褪色
- 27. 防止多次觸發jQuery中的點擊事件
- 28. 以發佈模式部署到設備時的配置文件配置錯誤
- 29. 使用點擊一次部署時,是否有「發佈日期」屬性可用
- 30. ClickOnce配置部署 - 配置文件
我不是作者,也沒有與該項目有任何關係,但是有一個適用於app.config轉換的visual studio插件(免費,如啤酒),非常像web.config轉換引擎中內置的工作。它被稱爲SlowCheetah,它允許你根據你的構建配置文件有不同的配置設置。 https://marketplace.visualstudio.com/items?itemName=WillBuikMSFT.SlowCheetah-XMLTransformsm意思是,例如,當您執行Release部署時,您可以發佈虛擬配置文件。 – Tommy