首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用条件编译器常量删除Visual预生成事件中的目录?

如何使用条件编译器常量删除Visual预生成事件中的目录?
EN

Stack Overflow用户
提问于 2016-11-21 17:18:30
回答 1查看 1.3K关注 0票数 0

我们有各种VB.NET解决方案,这些解决方案都有与它们相关联的ClickOnce安装程序,但是我们不需要/不希望保留以前的安装程序构建。因此,我今天所做的就是在项目中添加一个预构建事件,删除安装程序的“应用程序文件”文件夹:

代码语言:javascript
运行
复制
rd /s /q "\\myserver\myapp\Application Files"

这个很好,很棒。

现在,我们有了另一种解决方案,即使用自定义编译器常量(通过Visual中的高级编译选项安装)构建--如果存在一个名为APP1的常量,那么它的编译方式与常量APP2存在的情况不同,随后我们为关联的ClickOnce安装程序创建了不同的发布文件夹,因此需要删除与当前构建关联的正确的“应用程序文件”文件夹。

如果存在APP1,则ClickOnce输出文件夹为"\myserver\app1\Application“,如果存在APP2,则ClickOnce输出文件夹为"\myserver\app2\Application”。请注意,这些位置是UNC的设置,并以双“\”开始,但出于某种原因,在这篇文章中没有显示为double!

因此,我一直在研究在构建前事件中访问这些编译器常量,最后得到的结果是:

代码语言:javascript
运行
复制
if "$(DefineConstants.Contains(APP1))" (rd /s /q "\\myserver\App1\Application Files")

if "$(DefineConstants.Contains(APP2))" (rd /s /q "\\myserver\App2\Application Files")

因此,如果我将编译器常量设置为App1并尝试进行编译,就会得到:

错误命令"if“"True”(rd /s /q "\myserver\App1\Application Files")如果"False“(rd /s /q”\myserver\App2 2\Application Files")“与代码255一起退出。

我尝试过各种各样的东西,使用时间/选择,使用rmdir等等,但是我总是在255错误的情况下退出;那么,有谁知道为什么这是.更重要的是,知道我怎么才能绕过它吗?

干杯,

克里斯。

EN

Stack Overflow用户

回答已采纳

发布于 2016-11-22 01:57:29

我创建了一个演示,并在我这边复制您的问题,请修改您的预构建事件如下:

代码语言:javascript
运行
复制
if $(DefineConstants.Contains(APP1)) == True (rd /s /q "\\myserver\App1\Application Files")

if $(DefineConstants.Contains(APP2)) == True  (rd /s /q ""\\myserver\App2\Application Files ")
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40725813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档