2013-05-17 38 views
1

我包括使用通配符(手動編輯.csproj文件)在我.csproj文件中的一些文件,這樣不會加載在一個項目文件:的Visual Studio 2012也使用包括通配符

<ItemGroup> 
    <Compile Include="Class1.cs" /> 
    <Compile Include="Properties\AssemblyInfo.cs" /> 
    <Compile Include="..\..\**\Foo???Class.cs" /> 
</ItemGroup> 

它工作得十分完美。但是當我在另一個目錄中創建完整的代碼樹時,它突然停止了工作。當我打開我的原始目錄,它的工作原理,但是當我打開另一個目錄中的副本,VS說:

文件'.... ** \ Foo ??? Class.cs'不能添加到項目中。 指定的路徑包含無效字符,是絕對路徑, 或者是項目目錄之外的路徑。

爲什麼會發生?我怎麼解決這個問題?

+0

*在您的其他項目中工作*帶有問號的文件?你有沒有嘗試從文件中刪除問號?我甚至不知道你是如何通過該名稱獲得文件的,但Windows不允許你爲其命名帶有問號的文件。 – tnw

+0

@tnw這是有效的語法,是的。請參閱http://msdn.microsoft.com/en-us/library/vstudio/ms164283.aspx,'/ ** /'表示「任何目錄,遞歸地」,'/ * /'表示「任何目錄」和「 *'和'?'具有它們的正常含義(文件名通配符明智)。另外,'/'和'\\'顯然可以互換使用。 –

+0

@Doug您複製了哪部分項目樹?你在哪裏複製它?對於我們所知道的,'.. \ .. \'嘗試導航到您的驅動器的根目錄,並在其下一級。 –

回答

1

看起來像Visual Studio對文件夾名稱的長度有限制。

新的目錄(我在其中放置複製的代碼)的名稱長度爲42個字符。當我將其名稱縮減爲20個字符時,通配符就像原始代碼樹中一樣神奇地工作。