我正在研究项目,该解决方案有 40 多个项目。我有两个构建配置 Lite 和 Release。Lite 构建 AG 项目,Release 构建 A-M 项目。是否可以创建一个构建 Lite 并使用来自 lite 的 dll 进行发布的发布目标?
1 回答
我处理这个的方式是。
让所有内容都从相对文件夹中引用其依赖项。
.\MySolution01.sln
.\MyCSProj01\MyCSProj01.csproj
.\MyCSProj02\MyCSProj02.csproj
.\MyCSProjN\MyCSProjN.csproj
.\第三方参考\
.\ThirdPartyReferences\MyCoolDll.dll
.\ThirdPartyReferences\SomePDFLibrary.dll
在 csproj 中
<Reference Include="SomePDFLibrary">
<HintPath>..\ThirdPartyReferences\SomePDFLibrary.dll</HintPath>
</Reference>
2.
编写 msbuild 任务
A. 下拉“Lite”的代码。B. 构建“精简版”。C. 下拉“发布”代码。D. 将文件从“Lite”复制到“Release”的 ThirdPartyReferences 文件夹。E. 构建“发布”。
另一种想法。
当“Lite”构建时,将这些 dll“发布”到二进制存储库。“常春藤”(apache)是非微软的。(您可以使用 ivy 的命令行版本。但大多数 Microsoft 开发人员不会去这里) Nuget(带有本地存储库)是 ~binary 存储库的“微软风味”。
http://gregorsuttie.com/2011/01/03/using-a-nuget-local-repository/
然后,当“发布”构建时,它会从二进制存储库中“拉下”其二进制文件。