构建c#解决方案的优化

时间:2013-02-24 19:57:29

标签: c# c#-4.0 optimization dll msbuild

我正在研究项目,该解决方案有40多个项目。 我有两个构建配置Lite和Release。 Lite构建A-G项目并发布构建A-M项目。 是否有可能制作一个构建Lite的发布目标并使用lite中的dll for Release?

1 个答案:

答案 0 :(得分:0)

我处理这个的方式是。

  1. 让所有内容从相关文件夹中引用其依赖项。

    \ MySolution01.sln

    \ MyCSProj01 \ MyCSProj01.csproj

    \ MyCSProj02 \ MyCSProj02.csproj

    \ MyCSProjN \ MyCSProjN.csproj

    \ ThirdPartyReferences \

    \ ThirdPartyReferences \ MyCoolDll.dll

    \ ThirdPartyReferences \ SomePDFLibrary.dll

  2. 和csproj

     <Reference Include="SomePDFLibrary">
         <HintPath>..\ThirdPartyReferences\SomePDFLibrary.dll</HintPath>
    </Reference>
    

    2

    编写

    的msbuild任务

    一个。下拉“Lite”的代码。 B.建立“精简版”。 C.下拉“Release”代码。 D.将文件从“Lite”复制到“Release”的ThirdPartyReferences文件夹。 E.建立“释放”。

    替代想法。

    当“Lite”构建时,将这些dll“发布”到二进制存储库。 “常春藤”(apache)是非微软的。 (你可以使用常春藤的命令行版本。但大多数微软开发人员不会去这里) Nuget(带有本地存储库)是〜二进制存储库的“微软风格”。

    http://gregorsuttie.com/2011/01/03/using-a-nuget-local-repository/

    然后,当“Release”构建时,它会从二进制存储库“拉下”它的二进制文件。