首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在*.ASPX.VB文件中注入的代码在预编译事件中没有编译,必须编译两次,为什么?

问在*.ASPX.VB文件中注入的代码在预编译事件中没有编译,必须编译两次,为什么?
EN

Stack Overflow用户
提问于 2013-01-29 20:36:47
回答 1查看 238关注 0票数 0

我在Visual中的web项目中有一个预构建事件(2012年,但在2010年有相同的行为)。

预构建调用一个简单的exe,如果文件夹中有匹配的filename.aspx.vb文件,它将查找每个filename.html文件。

如果是这样的话,它只是将filename.html读入字符串(转义和缩小),并将其作为字符串注入到finename.aspx.vb中,类似于:

MyStribBuilder.Append(“这是来自外部文件的html代码的去处”)

假设我在filename.html上做了一个修改,我保存并编译并测试了这个网站。它应该反映调用filename.aspx时的最新变化。

这里发生了什么:

  • 如果我有一个非常轻的项目,只有一两页,它是有效的。它像预期的那样编译得很好。
  • 然后项目变得更大,它不再起作用了。我的意思是代码是注入的,但不是按预期编译的,如果我在webserver上刷新filename.aspx,我仍然有相同的版本,但是如果我在VS上打开filename.aspx.vb,代码就在那里。第二汇编作品100%确定。

我可以接受这种情况,但在html文件更改后,每次都要编译两次,以便进行测试。这对我来说毫无意义。

“预构建”意味着,如果实际上,在执行预构建例程之前,它似乎是在编译请求时缓存代码。

那么,在编译开始之前,如何确保在我的*.vb文件中注入代码呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-29 21:34:59

我发现问题不是VS没有等待exe在预构建时完成,而是在编译时打开filename.aspx.vb。

代码在IDE上更新自身(将选项设置为自动修改外部修改的打开页面),但我认为编译过程保留了打开文件的预构建版本,这在某种程度上是有意义的。

如果在编译文件之前关闭该文件,则可以。

现在,我想知道这是否有解决办法,但我知道在编译之前在IDE中动态修改打开的文件并不是一种常见的做法。然而,我确实非常依赖这种技术。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14591768

复制
相关文章

相似问题

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