8

有沒有人知道在編譯時讓visual studio完全忽略文件的方法?我有一個C#解決方案,它有一個foo.config文件,它不是一個真正的標準配置文件 - 它只是一個文本文件。在編譯VS時抓住文件和炸彈。如何使Visual Studio編譯器忽略文件?

我想讓它看起來好像只是一個文本文件。我沒有選擇更改文件的名稱。

編輯:請注意BuildAction不會排除編譯器檢查它們的文件。它只是決定文件是否被編譯到程序集中,不管它是內容(如jpg或其他),還是它是一個資源文件。欲瞭解更多信息:see the MSDN page。編輯2:顯然,如果你有一個名爲foo.config的文本文件,並且在構建時打開它,VS2005會彈出一個錯誤,認爲該文件應該是xml。但是,如果關閉文件,VS2005將忽略它。

解決方案:如果您在構建期間打開了不符合規範的文件,Visual Studio驗證會導致錯誤。有關如何關閉此功能(用於HTML)的示例,請參閱Scott Guthrie's post。正如艾倫所提到的,您還應該將生成操作轉換爲「無」。不幸的是,如果打開文件,這不會阻止構建錯誤。

+1

@ edit2:對,我在我的回答中完全如此解釋:) – 2009-03-05 15:46:25

回答

21

右鍵點擊>屬性

生成操作:設置爲「無」

編輯:如果你在談論的app.config,你真的不能惹的,該格式,你需要把它在一個不同的.config文件中。

我只是加倍檢查,VS.net不在乎,只要它沒有app.config或web.config和配置文件構建操作設置爲「無」,它會「錯誤」,如果你有文件打開但它不會導致構建失敗或阻止構建程序集。

關閉文件,錯誤將消失,類似於您獲得有關HTML標記的錯誤。這些「錯誤」的顯示可能是vs.net中的一個可配置設置。

2

只需右鍵單擊該文件並選擇「從項目中排除」。

如果您仍想在您的項目中看到它,請選擇該項目,然後單擊解決方案資源管理器頂部的「顯示所有文件」按鈕。這將顯示目錄樹中的所有文件,即使它們實際上不是項目的一部分。

+0

儘管它會被排除在代碼源控制之外。 – Crono 2016-03-02 15:42:19

+0

@Crono - 可能,但這一切都取決於你用於源代碼管理的東西。 – 2016-03-02 16:11:14

1

你確定VS編譯.config文件?

您應該檢查它是文件選項中的生成操作,並可能將其設置爲無。

5

要執行的操作取決於解決方案和文件類型。例如(在VS2005中),在C++解決方案中,我可以右鍵單擊解決方案資源管理器中的源文件名並查看其屬性。第一個「常規」選項是「從構建中排除」,這將允許您從構建過程中排除文件,而不必從項目中排除該文件。

我在C#解決方案中拉出了一個.config文件,並在Advanced部分下找到了「Build Action」選項。這應該設置爲「無」。