从目录中编译中排除某些文件

时间:2017-01-17 13:20:01

标签: c# compilation .net-assembly csc

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

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

上述命令的问题是switch :/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开关中编译(不知道如何排除文件)。

1 个答案:

答案 0 :(得分:0)

虽然将一些参数传递给CSC.exe以从/recurse开关中排除某些文件会很不错。我没找到它。 解决方案我选择了:

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

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