我想部署我的 ASP.NET MVC 站点并具有以下脚本。
<?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 项目。我不知道这种情况出了什么问题。
我通过解决方法完成了这个问题,但我想知道这个脚本有什么问题。
我尝试的第一件事是将已弃用的 $(OutputPath) 替换为 $(OutDir)。从我看到这个错误开始,十有八九是由于请求的平台/配置与特定项目的实际定义方式不匹配造成的。请注意跟踪解决方案文件首选的“Any CPU”(带空格)与 $(Platform) 项目文件中实际使用的“AnyCPU”之间的差异。某些项目向导仅设置“x86”平台或忽略“AnyCPU”,这可能导致输出路径为空。
除此之外,导入项目文件然后构建解决方案(大概包括相同的项目)的方法有点偏离中心。考虑通过导入在项目文件本身中进行所需的部署更改。您可以在正确的位置连接到现有的构建目标,或者添加一个额外的目标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)