1

.csproj次のように、ワイルドカードを使用して(.csprojファイルを手動で編集して)ファイルにいくつかのファイルを含めました。

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

それは完璧に機能しました。しかし、コード ツリー全体のコピーを別のディレクトリに作成すると、突然動作しなくなりました。元のディレクトリを開くと機能しますが、別のディレクトリでコピーを開くと、VS は次のように言います。

ファイル '....**\Foo???Class.cs' をプロジェクトに追加できませんでした。指定されたパスに無効な文字が含まれているか、絶対パスであるか、プロジェクト ディレクトリ外のパスです。

なぜそれが起こるのですか?どうすればこの問題を解決できますか?

4

1 に答える 1

1

Visual Studio には、フォルダー名の長さに関する制限があるようです。

新しいディレクトリ (コピーしたコードを配置したディレクトリ) の名前は 42 文字でした。その名前を 20 文字に減らした瞬間、元のコード ツリーと同様に、ワイルドカードが魔法のように機能しました。

于 2013-05-18T14:29:48.957 に答える