Asp.net mvc 2 通过脚本而不是Visual Studio发布我的asp.net mvc应用程序
老实说,我对这件事不太了解 我已经成功下载了mscommunity build,并成功地使用下面的脚本编译和构建了我的应用程序,但是我想让我的asp.net mvc应用程序“发布”,所以我想要的文件与您在visual studio中单击“发布”时使用的文件相同。我当前的生成文件如下所示:Asp.net mvc 2 通过脚本而不是Visual Studio发布我的asp.net mvc应用程序,asp.net-mvc-2,deployment,msbuild,Asp.net Mvc 2,Deployment,Msbuild,老实说,我对这件事不太了解 我已经成功下载了mscommunity build,并成功地使用下面的脚本编译和构建了我的应用程序,但是我想让我的asp.net mvc应用程序“发布”,所以我想要的文件与您在visual studio中单击“发布”时使用的文件相同。我当前的生成文件如下所示: <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.mic
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Import the MSBuild Tasks -->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<ClassLibraryOutputDirectory>c:\publish\</ClassLibraryOutputDirectory>
<ProjectDir>..\PetProject\</ProjectDir >
<ProjectTestDir>$(ProjectDir)PetProject.WebUI\</ProjectTestDir >
<ProjectFile>$(ProjectDir)PetProject.sln</ProjectFile >
<TestProjectFile>$(ProjectTestDir)PetProject.WebUI.csproj</TestProjectFile >
</PropertyGroup>
<!-- Build projects by calling the Project files generated by VS -->
<Target Name="Build">
<MSBuild Projects="$(ProjectFile)" />
<MSBuild Projects="$(TestProjectFile)" />
</Target>
</Project>
<Project DefaultTargets="BuildAndPublish" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
<PropertyGroup>
<OutDir>C:\PetProject\MyPublish\</OutDir>
</PropertyGroup>
<ItemGroup>
<Solution Include="C:\PetProject\PetProject.sln">
<Properties>
OutDir=$(OutDir);
Platform=Any CPU;
Configuration=Release;
DeployOnBuild=True;
DeployTarget=Package;
PackageLocation=$(OutDir)\MSDeploy\Package.zip;
_PackageTempDir=$(OutDir)\Temp
</Properties>
</Solution>
</ItemGroup>
<Target Name="BuildAndPublish">
<MSBuild Projects="@(Solution)" />
</Target>
</Project>
非常感谢你的帮助
注意:我想避免使用CI、Nant等。因为我不知道它们是什么,我理想情况下希望将上述内容作为第一个基础,然后转到其他方面,如CI或其他任何东西,我不想太迷惑自己…这应该会给您带来与在Visual Studio中发布相同的结果:
<Project DefaultTargets="BuildAndPublish" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
<PropertyGroup>
<ProjectFile>C:\PetProject\PetProject.csproj</ProjectFile >
<OutDir>C:\PetProject\MyPublish</OutDir>
</PropertyGroup>
<Target Name="BuildAndPublish">
<MSBuild Projects="$(ProjectFile)" Targets="Package" Properties="Configuration=Release;PackageLocation=$(OutDir)\MSDeploy\Package.zip;_PackageTempDir=$(OutDir)\Temp" />
</Target>
</Project>
有一种方法描述了基本相同的方法,但在我的环境中尝试时不起作用。如何将发布目标输出到我的输出目录?我无法理解这一点…很抱歉,我的初始答案不起作用-我混淆了
发布
(它只适用于ClickOnce可部署项目和包
。这很酷…我假设这要求服务器上安装visual studio?(我的服务器没有安装visual studio!)抱歉,我的应用程序是Asp.net MVC2,目标是Asp.net 3.5而不是4。0@Haroon我会看看我是否能用你的规格设置一个例子——在你的构建机器上没有VS应该是可能的。
<Project DefaultTargets="BuildAndPublish" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
<PropertyGroup>
<OutDir>C:\PetProject\MyPublish\</OutDir>
</PropertyGroup>
<ItemGroup>
<Solution Include="C:\PetProject\PetProject.sln">
<Properties>
OutDir=$(OutDir);
Platform=Any CPU;
Configuration=Release;
DeployOnBuild=True;
DeployTarget=Package;
PackageLocation=$(OutDir)\MSDeploy\Package.zip;
_PackageTempDir=$(OutDir)\Temp
</Properties>
</Solution>
</ItemGroup>
<Target Name="BuildAndPublish">
<MSBuild Projects="@(Solution)" />
</Target>
</Project>