我正在研究项目,该解决方案有40多个项目。 我有两个构建配置Lite和Release。 Lite构建A-G项目并发布构建A-M项目。 是否有可能制作一个构建Lite的发布目标并使用lite中的dll for Release?
答案 0 :(得分:0)
我处理这个的方式是。
让所有内容从相关文件夹中引用其依赖项。
\ MySolution01.sln
\ MyCSProj01 \ MyCSProj01.csproj
\ MyCSProj02 \ MyCSProj02.csproj
\ MyCSProjN \ MyCSProjN.csproj
\ ThirdPartyReferences \
\ ThirdPartyReferences \ MyCoolDll.dll
\ ThirdPartyReferences \ SomePDFLibrary.dll
和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”构建时,它会从二进制存储库“拉下”它的二进制文件。