从目录中排除某些文件

Exclude certain files from compiling in directory

我正在尝试通过为各自的 Visual Studio 项目创建 .netmodules 来创建多文件程序集。这些 .netmodules 正在成功创建。用于生成模块的命令:

csc.exe "/out:$(ProjectDir)$(ProjectName).netmodule" "/t:module" "/recurse:$(ProjectDir)*.cs"

上述命令的问题是开关:/recurse:$(ProjectDir)*.cs,编译了项目中的所有文件,包括AssemblyInfo.cs文件。这个文件是为每个项目编译的。

最后,当我尝试使用以下命令构建多文件程序集时:

csc.exe /t:library /out:MultiFile.dll /addmodule:Foo.netmodule /addmodule:Boo.netmodule

我收到错误 error CS7061: Duplicate 'GuidAttribute' attribute in 'Foo.netmodule'

请说明创建多文件程序集的任何方法。

对于我来说,我可以想到两种方法,从项目中删除 AssemblyInfo.cs 文件或找到一种方法将特定文件从 /recurse 开关中的编译中排除(不知道如何排除文件)。

尽管将一些参数传递给 CSC.exe 以从 /recurse 开关中排除一些文件会很好。我没有在任何地方找到它。 我选择的解决方案:

  1. 将每个 Visual Studio 项目的所有源文件复制到不同的文件夹,不包括 AssemblyInfo.cs 文件。

  2. 编译该文件夹中的所有文件以生成 .netmodule.