使用ClickOnce阻止部署调试版本

时间:2010-04-13 21:26:05

标签: c# deployment clickonce debug-build

我正在使用VS2008发布ClickOnce应用程序,但在每次发布之前我都必须手动切换到Release配置。这是好的,只要我不忘记切换。有没有办法阻止部署调试版本?是否有一些编译器指令,如:

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

或者是否有一种方法(没有构建脚本)在发布之前自动切换到Release配置?

(我发现了一些类似的问题,但不喜欢上面的问题)

由于

3 个答案:

答案 0 :(得分:3)

不确定这是否令人不满,但请在相关帖子中查看我的回答:

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

简而言之,您可以修改项目文件以在发布之前检查调试符号,如果找到它们则抛出错误条件。这可以防止部署发生而无需任何.bat文件或外部处理。

答案 1 :(得分: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;
        }
    }

赞赏任何其他想法。

答案 2 :(得分:0)

很抱歉告诉你这个,但是没办法这样做。 jomi是对的,如果更改签名密钥,则会出现对话框,但如果更改构建配置则不会。部署产品时,您必须密切关注。

RobinDotNet
访问我的ClickOnce blog!