Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio 2012不会加载使用通配符包含的项目中的文件_C#_Visual Studio 2012_Csproj - Fatal编程技术网

C# Visual Studio 2012不会加载使用通配符包含的项目中的文件

C# Visual Studio 2012不会加载使用通配符包含的项目中的文件,c#,visual-studio-2012,csproj,C#,Visual Studio 2012,Csproj,我使用通配符在我的.csproj文件中包含了一些文件(手动编辑.csproj文件),如下所示: <ItemGroup> <Compile Include="Class1.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="..\..\**\Foo???Class.cs" /> </ItemGroup> 它工作得完

我使用通配符在我的
.csproj
文件中包含了一些文件(手动编辑
.csproj
文件),如下所示:

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

它工作得完美无缺。但是,当我在另一个目录中创建整个代码树的副本时,它突然停止了工作。当我打开原始目录时,它会工作,但当我在另一个目录中打开副本时,VS会显示:

无法将文件“..…**\Foo???Class.cs”添加到项目中。 指定的路径包含无效字符,是绝对路径, 或是项目目录之外的路径


为什么会这样?如何解决此问题?

看起来Visual Studio对文件夹名称的长度有限制


新目录(我在其中放置了复制的代码)名称有42个字符长。当我将其名称减少到20个字符时,通配符就神奇地工作了,就像在原始代码树中一样。

看起来Visual Studio对文件夹名称的长度有限制


新目录(我在其中放置了复制的代码)名称有42个字符长。当我将其名称缩减为20个字符时,通配符神奇地工作了,就像在原始代码树中一样。

在您的另一个项目中工作过吗?带问号的文件?您是否尝试过从文件中删除问号?我甚至不知道你是如何用这个名字命名文件的,Windows不允许你用问号命名文件。@tnw这是有效的语法,是的。请参阅,
/***/
表示“任何目录,递归”;
/*/
表示“任何目录”;
*
也有其正常含义(文件名通配符)。而且,
/
和``显然可以互换使用。@Doug您复制了项目树的哪一部分?你在哪里复制的?据我们所知,`..\`试图向下导航到驱动器的根目录和它下面的一个级别。哦,有趣的是——我知道通配符
*
,但在这个上下文中不是
。我为那些愚蠢的问题道歉。感谢您带我去学校学习:这些都是为msbuild记录的数据软件。不一定与IDE认为合理的匹配。在尝试此操作时,我没有看到明显的失败模式,最好将此发布到connect.microsoft.com,它在您的其他项目中起作用?带问号的文件?您是否尝试过从文件中删除问号?我甚至不知道你是如何用这个名字命名文件的,Windows不允许你用问号命名文件。@tnw这是有效的语法,是的。请参阅,
/***/
表示“任何目录,递归”;
/*/
表示“任何目录”;
*
也有其正常含义(文件名通配符)。而且,
/
和``显然可以互换使用。@Doug您复制了项目树的哪一部分?你在哪里复制的?据我们所知,`..\`试图向下导航到驱动器的根目录和它下面的一个级别。哦,有趣的是——我知道通配符
*
,但在这个上下文中不是
。我为那些愚蠢的问题道歉。感谢您带我去学校学习:这些都是为msbuild记录的数据软件。不一定与IDE认为合理的匹配。尝试此操作时,我看不到明显的失败模式,最好将此发布到connect.microsoft.com