我想部署我的ASP.NET MVC站点并拥有以下脚本。MSBuild:OutputPath目录为空
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\MyProjName\MyProjName.csproj"/>
<PropertyGroup>
<NewInstallDir>C:\DeployFolder\</NewInstallDir>
<BinDir>$(NewInstallDir)bin\</BinDir>
</PropertyGroup>
<Target Name="Build">
<MSBuild Projects="..\MySlnName.sln"
Properties="Configuration=Release;Platform=Any CPU;OutputPath=$(BinDir)" />
<Copy SourceFiles="@(Content->'..\MyProjName\%(RelativeDir)%(FileName)%(Extension)')"
DestinationFiles="@(Content->'$(NewInstallDir)%(RelativeDir)%(FileName)%(Extension)')" />
<Copy SourceFiles="@(None->'..\MyProjName\%(RelativeDir)%(FileName)%(Extension)')"
DestinationFiles="@(None->'$(NewInstallDir)%(RelativeDir)%(FileName)%(Extension)')" />
<MakeDir Directories="@(Folder->'$(NewInstallDir)%(RelativeDir)')" />
</Target>
</Project>
主要想法。
我将二进制文件复制到C:\ DeployFolder(从源文件夹获取文件夹结构)。我建立我的DLL到C:\ DeployFolder \ Bin(我没有在源文件夹中的这个文件夹,所以我需要单独复制这个)。
我运行我的脚本 - 所有的作品,而不是复制DLL到OutputPath。相同的脚本适用于其他asp.net mvc项目。在这种情况下,我不知道什么是错的。
我用变通办法完成此问题,但我想知道这个脚本有什么问题。
Thanks!OutDir help in the case。 – RredCat 2011-05-31 16:15:58
对于任何人打这个答案多年后,评论底部的[.NET 3.5](https://msdn.microsoft.com/en-us/library/bb629394%28v=vs.90%29.aspx)的MSBuild属性文档似乎表明,在2008年有一些关于页面说'OutputPath'已被弃用,但该页面后来改变了。对于[.NET 4.0](https://msdn.mi crosoft.com/en-us/library/bb629394%28v=vs.100%29.aspx)以及更新的'OutputPath'记录为使用者。请注意,在VS2015中,'OutputPath'和'OutDir' _work_对我来说,但'OutputPath'是在项目文件codegen中使用的。 – Daryn 2016-01-22 01:14:12
啊,'$(OutDir)'是一个[“Macro”](https://msdn.microsoft.com/en-us/library/c02as0cs.aspx) – Daryn 2016-01-22 01:27:50