0

我正在使用 Visual Studio 2010 中的 php 网站。在我尝试发布之前,一切都很顺利。该网站的已发布版本中不包含任何 php 文件。我该如何解决?

我在这个线程(Visual Studio 2010 Web Publish missing a fileBuildAction )中读到,您可以基于每个文件更改属性。太好了,但是对于分布在庞大文件夹层次结构中的 112 个和一些奇怪的文件,我如何自动执行此操作?我可以更改BuildAction每个以 结尾的文件的默认值*.php吗?我什至愿意在命令行上执行此操作,因为至少在那时,我可以遍历文件列表并为每个文件更改它。

编辑:我意识到一些事情:BuildAction属性存储在<Project_Name>.vbproj文件中,形式如下:

  <ItemGroup>
    <Content Include="aboutus.php" />
    <None Include="login.php" />

这是我更改BuildActionaboutus.php(通过VS)而不是login.php之后的样子。明智地使用 Find-and-Replace 会起作用,但会很乏味。这是我的临时解决方案。

4

2 回答 2

1

通过 VS IDE 更改多个文件的构建操作的一种方法是选择所需的所有文件,然后选择属性,然后设置构建操作。我知道它绝对适用于所有以相同扩展名结尾的文件。

我会考虑的另一件事是使用 Visual Studio 宏来获得所需的结果,请查看 MSDN 网站上的此处

于 2011-06-28T20:50:14.717 回答
0

我并没有真正找到一个好的解决方案,但我确实找到了一个肮脏的解决方案。我意识到.vbproj包含BuildAction设置的文件是 XML 格式的。所以,我用 替换了每一个出现<None ...<Content ...然后</None></Content>. 这不是一个理想的解决方案,因为它还影响了许多不应该包含在网站已发布版本中的文件,但事实就是如此。

但是,我确实从 KevDog 的链接中了解到,可以为 Visual Studio 编写自定义文件模板,这些模板会影响BuildAction使用该模板创建的任何新文件的属性。这对我来说是不合适的,因为它只影响新生成的文件,但它可能会帮助其他从项目开始就看到这个问题的人——比如我,在我的下一个 php 项目中。

于 2011-06-30T04:57:24.103 回答