2011-05-11 31 views
2

我想部署我的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项目。在这种情况下,我不知道什么是错的。

我用变通办法完成此问题,但我想知道这个脚本有什么问题。

回答

5

我想尝试的第一件事是用$(OutDir)替换您对弃用$(OutputPath)的使用。从我看到这个错误的时候开始,10次中有9次是由于所请求的平台/配置与实际定义的特定项目之间的不匹配。注意跟踪解决方案文件首选的“任何CPU”(带空间)与项目文件中实际使用的“$(平台)”的“AnyCPU”之间的差异。某些项目向导只设置“x86”平台或者省略可导致OutputPath为空的“AnyCPU”。

除此之外,导入一个项目文件然后构建一个解决方案的方法(可以说包含同样的项目“有点偏离中心,考虑在项目文件本身中通过导入来部署更改。你可以在正确的位置连接到现有的构建目标,或者添加一个额外的目标。

+0

Thanks!OutDir help in the case。 – RredCat 2011-05-31 16:15:58

+0

对于任何人打这个答案多年后,评论底部的[.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

+0

啊,'$(OutDir)'是一个[“Macro”](https://msdn.microsoft.com/en-us/library/c02as0cs.aspx) – Daryn 2016-01-22 01:27:50