我有一个普通的SLN文件,我正在使用msbuild从命令行编译它.我这样做:
C:\ slndir> msbuild/p:OutDir = C:\ slnbin \
并且它将所有内容转储到C:\ slnbin中,除了网站,它们被部署到C:\ slnbin_PublishedWebsites \.
我想要的是不仅将所有二进制文件都放在bin目录中,而且每个可执行程序都有自己的"部署"文件夹,类似于每个网站获得的.
所以,例如,如果我有以下项目: - Common - Lib1 - Service1 - Lib2 - Service2
我想得到:
C:\slnbin\ // Everything C:\slbin\Deploy\Service1 // Common, Lib1, Service1 C:\slbin\Deploy\Service2 // Common, Lib2, Service2
我尝试过像"msbuild/p:OutDir = C:\ slnbin\$(ProjectName)"这样的东西,但它只是将它视为文字并创建一个实际的"$(ProjectName)"子目录.
我不需要修改每个项目等等.
这可能吗?简单?
就像John Saunders所说的那样,你需要有一个处理这个过程的主MSBuild文件.
以下是使用MSBuild社区任务的示例:GetSolutionProjects,用于获取给定解决方案的项目
AnyCPU Debug C:\slbin\Deploy