从目录中排除某些文件
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
开关中排除一些文件会很好。我没有在任何地方找到它。
我选择的解决方案:
将每个 Visual Studio 项目的所有源文件复制到不同的文件夹,不包括 AssemblyInfo.cs
文件。
编译该文件夹中的所有文件以生成 .netmodule.
我正在尝试通过为各自的 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
开关中排除一些文件会很好。我没有在任何地方找到它。
我选择的解决方案:
将每个 Visual Studio 项目的所有源文件复制到不同的文件夹,不包括
AssemblyInfo.cs
文件。编译该文件夹中的所有文件以生成
.netmodule.