0

我正在使用Visual Studio 2010中的php網站。一切都很順利,直到我嘗試發佈。沒有任何php文件包含在網站的發佈版本中。我該如何解決?如何控制Visual Studio默認發佈哪種文件?

我在該主題(Visual Studio 2010 Web Publish missing a file)中讀到,您可以根據每個文件更改BuildAction屬性。太好了,但我該如何自動執行此操作十二分之二以及一些奇怪的文件散佈在一個龐大的文件夾層次結構中?我是否可以更改默認的BuildAction,例如每個以*.php結尾的文件?我甚至願意在命令行上這樣做,因爲至少可以遍歷文件列表並對其中的每個文件進行更改。

編輯:我意識到東西:BuildAction屬性存儲在<Project_Name>.vbproj文件,以這種形式:

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

這是什麼樣子,我改變aboutus.php的BuildAction剛過(通過VS),但不是login.php。明智地使用查找和替換可能會奏效,但會很乏味。這是我的臨時解決方案。

回答

0

我真的沒有找到一個好的解決辦法,但我沒有找到一個骯髒的修復。我意識到.vbproj文件(其中包含BuildAction設置)採用XML格式。所以,我用<Content ...替換<None ...的每一次出現,然後用</Content>替換每個</None>。這不是一個理想的解決方案,因爲它也影響了許多本不應該包含在發佈版本的網站中的文件,但它就是這樣。

但是,我確實從KevDog的link那裏瞭解到,有可能爲Visual Studio編寫自定義文件模板,這會影響使用該模板創建的任何新文件的BuildAction屬性。這在我的情況下並不合適,因爲它隻影響新生成的文件,但它可能會幫助其他人看到這個問題來自項目開始 - 像我一樣,在我的下一個php項目中。

1

您可以通過VS IDE更改多個文件的構建操作的一種方法是選擇所需的所有文件,然後選擇屬性,然後設置構建操作。我知道它確實適用於以相同擴展名結尾的所有文件。

我會考慮的另一件事是一個Visual Studio宏來得到期望的結果,看看這裏 on the MSDN site

+0

感謝您的鏈接。我希望避免手動選擇所有這些文件:它們遍佈在相當龐大的目錄層次結構中 – jpaugh

+0

不是問題。我討厭編寫VS宏,但是如果你有多個需要這個的解決方案,這可能是值得的。 – KevDog

相關問題