2010-04-13 31 views
7

我正在發佈VS2008的ClickOnce應用程序,但在每次發佈之前,我都必須手動切換到Release配置。就我不忘記切換而言,這很好。有沒有辦法阻止部署調試版本?有沒有像一些編譯器指令:防止使用ClickOnce部署調試版本

#if DEBUG 
#if ClickOnce 
#error You cannot publish a debug build 
#endif 
#endif 

還是有方法(不生成腳本)自動切換髮布之前發佈的配置?

(我發現一些類似的問題,但不喜歡在他們anwsers)

感謝

+0

它不是已經提示你*有東西不匹配*,並且在重寫前請求確認,當您試圖通過發佈版本發佈調試版本(發佈正確版本時沒有這種對話)? – 2010-04-13 21:30:26

+0

謝謝,但不幸的是,沒有這樣的對話。 – jomi 2010-04-14 05:41:34

+0

相關:http://stackoverflow.com/questions/47107/clickonce-disallow-publishing-of-debug-builds它提供了一個鏈接http://msdn.microsoft.com/en-us/library/ms164307.aspx – mbx 2012-03-01 16:15:49

回答

2

不知道這是令人難以接受的,但請看到我的答案相關的主題:

https://stackoverflow.com/a/15080048/571237

總之你可以修改項目文件發佈前檢查調試符號,並拋出如果找到了錯誤條件。這可以防止在不需要任何.bat文件或外部處理的情況下進行部署。

+0

謝謝,插件工作正常,但每個人都必須安裝它。現在我可以使用: jomi 2013-07-02 21:55:02

0

遺憾地告訴你這一點,但有沒有辦法做到這一點。而且jomi是對的,如果你改變了簽名密鑰,你會得到對話框,但是如果你改變了構建配置,就不會。部署產品時,您必須密切關注。

RobinDotNet
訪問我ClickOnce blog!

+0

+1導致博客真棒。你現在有一個新的讀者。 – 2010-04-14 15:30:06

+0

謝謝!我在.NET 4.0和ClickOnce上有一些即將出現的條目。希望他們有幫助! – RobinDotNet 2010-04-16 07:01:05

+0

這是錯誤的:這個竅門:http://stackoverflow.com/questions/47107/clickonce-disallow-publishing-of-debug-builds/15080048#15080048 – schlamar 2013-07-19 09:05:35

1

到目前爲止,我已經找到了最好的解決方案是基於寫一個VS2008加載項:http://msdn.microsoft.com/en-us/library/ms165638.aspx

public void OnPublishBegin(ref bool pubContinue) 
    { 
     if (pubContinue && _applicationObject.Solution.SolutionBuild.ActiveConfiguration.Name != "Release") 
     { 
      System.Windows.Forms.MessageBox.Show("You can only publish a Release build"); 
      pubContinue = false; 
     } 
    } 

任何其他的想法表示讚賞。

+0

偉大的建議!修復我的問題,並允許我添加其他有用的功能。 – Dan 2012-12-06 17:15:35