禁止发布ClickOnce部署的调试版本

时间:2008-09-05 23:57:14

标签: clickonce

有没有办法禁止使用ClickOnce发布调试版本?

我只想允许发布版本,但是现在人为错误导致调试版本偶尔会漏掉。

我们正在Visual Studio中发布构建。

3 个答案:

答案 0 :(得分:50)

我已经开始修改.csproj文件以包含以下代码,以便为调试部署引发错误,从而有效防止部署发生:

<!-- The following makes sure we don’t try to publish a configuration that defines the DEBUG constant -->
<Target Name="BeforePublish">
    <Error Condition="'$(DebugSymbols)' == 'true'" Text="You attempted to publish a configuration that defines the DEBUG constant!" />
</Target>

只需将其放在文件的末尾,就在</Project>标记之前。

(原始来源:http://www.nathanpjones.com/wp/2010/05/preventing-clickonce-publishing-a-debug-configuration/comment-page-1/#comment-625

答案 1 :(得分:7)

您可以做的一件事是在.csproj或.vbproj文件中添加一个条件,MSBuild在进行构建时会检查该文件。

该条件将检查是否发生了发布并检查构建是否是调试版本,然后执行诸如运行外部工具或以其他方式中断构建过程或导致其失败的行为。

一个例子可能是这样的:

<Choose>
    <When Condition=" '$(Configuration)'=='Debug' ">
        <Exec Command="C:\foo.bat" ContinueOnError="false" />
    </When>
 </Choose>

其中foo.bat是一个返回非零的批处理文件,因此停止发布。

答案 2 :(得分:3)

我选择了另一种对我有用的解决方案:

我无法更改构建过程。所以我做了工具自定义... 并更改了操作的文本,添加了“发布[配置发布!]”等警告,并放置了“发布”按钮在Debug / Release配置选项旁边。这很简单!

有了这个,我大大降低了人为错误的风险。这些按钮应该总是在一起。