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

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

Disallow publishing of debug builds for ClickOnce deployment

是否有一种方法可以禁止使用ClickOnce发布调试版本?

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

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


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

1
2
3
4
<!-- The following makes sure we dona€?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)


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

该条件将检查是否正在发生发布,并检查该构建是否为调试构建,然后执行诸如运行外部工具之类的操作,否则会中断构建过程或导致其失败。

一个例子可能是这样的:

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

其中foo.bat是一个批处理文件,返回的非零值,从而阻止了发布的发生。


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

我无法更改构建过程。因此,我做了"工具"吗?’"自定义..."并更改操作的文本,添加了一个警报,例如"发布[配置要发布!] ",然后将"发布"按钮放在"调试/发布"配置选项旁边。很简单!

由此,我大大降低了人为错误的风险。这些按钮应该始终在一起。


推荐阅读

    改文件linux命令行?

    改文件linux命令行?,地址,系统,工作,信息,数字,文件,命令,设备,密码,权限,lin

    linux命令添加文件?

    linux命令添加文件?,工作,简介,数据,系统,文件,命令,操作,文件名,内容,终端,l

    linux文件输入命令?

    linux文件输入命令?,工作,系统,地址,信息,工具,位置,命令,设备,发行,首开,lin

    文件备份命令linux?

    文件备份命令linux?,网站,系统,设备,文件,软件,网络,工具,环境,数据,地址,lin

    linux遍历文件命令?

    linux遍历文件命令?,系统,数据,工具,文件,平台,信息,百度,位置,时间,适当,lin

    linux命令查看小文件?

    linux命令查看小文件?,系统,档案,文件夹,标准,软件,单位,文件,命令,大小,内

    linux文件中剪切命令?

    linux文件中剪切命令?,位置,系统,工作,命令,发行,连续,标准,终端,文件,目录,l

    linux存储文件命令?

    linux存储文件命令?,系统,地址,工作,命令,软件,电脑,标准,底部,信息,文件,lin

    linux保存命令文件?

    linux保存命令文件?,系统,状态,命令,文件,第一,管理,电脑,模式,编辑,终端,lin

    linux私有文件命令?

    linux私有文件命令?,系统,工作,工具,命令,设备,文件,目录,位置,不了,情况,Lin

    删除linux文件命令?

    删除linux文件命令?,名称,不了,文件夹,命令,文件,目录,方法,指令,子目录,选

    linux文件录入命令?

    linux文件录入命令?,系统,命令,网络,标准,时间,密码,名字,管理,文件,文件夹,L

    文件复制命令linux?

    文件复制命令linux?,系统,地址,文件,目录,位置,工具,命令,目标,文件名,源文

    linux命令错误代码?

    linux命令错误代码?,系统,密码,电脑,网络,手机,网址,软件,代码,设备,老板,Lin

    linux命令移除文件夹?

    linux命令移除文件夹?,命令,文件夹,通用,不了,数据,名称,档案,系统,文件,目

    linux文件倒序命令?

    linux文件倒序命令?,地址,工作,管理,标准,命令,基础,系统,数据,最新,代码,lin

    在linux文件后加命令?

    在linux文件后加命令?,系统,工作,命令,工具,电脑,基础,管理,情况,第一,简介,L

    linux命令删除文件夹?

    linux命令删除文件夹?,系统,名称,环境,文件夹,不了,命令,文件,数据,档案,目

    linux命令看文件编码?

    linux命令看文件编码?,状态,系统,文件,工具,名称,数据,命令,格式,汉字,以下,L

    linux编辑文件的命令?

    linux编辑文件的命令?,系统,地址,工作,状态,命令,电脑,信息,管理,目录,终端,l