我们有一个包含许多类库项目的解决方案。它们各自产生一组 DLL。
我们想要部署这些的方式是将它们安装到 GAC。所以我们可以有一个脚本(BAT 文件)在 DLL 上运行 Gacutil /i。
我们目前使用 TFS 使用默认的 TFS 构建模板来构建我们的解决方案。
我们需要 TFS 来构建解决方案,并使用 DLL 和安装脚本为每个项目(发布包)生成文件夹。因此,之后我们需要做的就是转到放置文件夹,查看文件夹列表(发布包),以及在文件夹中安装每个类库所需的一切。
例如
-> 拖放文件夹 - >项目1 -> Proj1.dll -> 安装.bat - >项目2 -> Proj2.dll -> 安装.bat -> Proj3 -> Proj3.dll -> 安装.bat
更新:
对于每个项目,我都设置了以下构建后事件:
powershell -executionpolicy 绕过 -file "$(ProjectDir)Deployment\CreateDeploymentPackage.ps1" -Bin $(TargetDir) -Source $(ProjectDir) -Name $(ProjectName)
在我的源代码中,我有上述 powershell 脚本Deployment\CreateDeploymentPackage.ps1
powershell 脚本如下所示:
参数( [string][parameter(mandatory=$true)] $Bin, [string][parameter(mandatory=$true)] $Source, [字符串][参数(强制=$true)]$Name) $packagePath = "$Bin$Name" 新项目“$packagePath”-类型目录 复制项目 *.dll $packagePath -recurse 复制项目“$deploymentScripts\Install.ps1”“$packagePath”-recurse 复制项目“$deploymentScripts\Uninstall.ps1”“$packagePath”-recurse
现在这在我本地构建时有效。它拾取 bin 目录中的所有 dll 并将它们复制到文件夹中。
这也适用于 TFS 构建服务器,但仅适用于自行构建项目时。
问题在于 TFS 如何将我的解决方案中的所有 dll 构建到单个 bin 输出目录中。
问题
有没有办法只复制与项目相关的dll(包括依赖项)而不明确列出每个dll?