【问题标题】:Exclude certain files from compiling in directory从目录中编译排除某些文件
【发布时间】:2017-01-17 13:20:01
【问题描述】:

我正在尝试通过为各个 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 开关中找到将特定文件排除在编译之外的方法(不知道如何排除文件) .

【问题讨论】:

    标签: c# compilation .net-assembly csc


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 2012-05-12
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      相关资源
      最近更新 更多