Joe*_*Joe 3 .net msbuild nant visual-studio visual-studio-2012
我们正在升级到vs2k12和.net 4.5,所以我正在完成构建过程并让我们的CI服务器上的所有内容再次运行,但我遇到了一些困难.
以下是事情应该如何运作:
我们有一个包含两个Web项目的解决方案文件,在开发人员计算机上这些是"就地"编译(输出未重定向),IIS指向相应的项目文件夹进行开发和测试,这部分很好.
在我们的构建机器上,我们需要将每个Web应用程序(2)的输出重定向到我们的安装程序打包的单独文件夹中,这是我遇到困难的地方.发生的事情是其中一个Web项目内容最终在其他Web项目文件夹中,覆盖了Global.aspx和web.config等文件,因为每个项目都有自己的.
我们曾经使用Web部署项目来实现这一点,但现在它们已被弃用,所以我试图使用msbuild的web发布机制/配置文件,但我基本上已经丢失了.
我试过这里提到的东西:
我必须遗漏一些简单的东西,因为我所要做的就是文件系统副本,没有花哨的schmancy发布到某些网络服务器魔术.
目前,我正在从我的nant构建脚本中调用sln文件中的msbuild,如下所示:
<msbuild project="${root.dir}\WebPortal\WebPortal ExtJS\WebPortal ExtJS.sln" verbosity="${tools.dotnet.msbuild.verbosity}">
<property name="Configuration" value="${msbuild.configuration}" />
<property name="OutputPath" value="${project.builddir}" />
<property name="DeployOnBuild" value="true" />
<property name="DeployTarget" value="PipelinePreDeployCopyAllFilesToOneFolder " />
<property name="WebPublishMethod" value="FileSystem" />
<property name="publishUrl" value="${project.builddir}" />
<property name="DeleteExistingFiles" value="true" />
<property name="DebugSymbols" value="${msbuild.debugSymbols}" />
<property name="DebugType" value="${msbuild.debugType}" />
</msbuild>
Run Code Online (Sandbox Code Playgroud)
当从同一个解决方案文件构建时,我需要对每个Web项目做些什么才能使输出正确重定向?我认为只需设置输出文件夹中的每个具体的csproj,但也改变一个地方的开发机,我想避免,如果可能的话,保留的路径简单/不易混淆/清洁器在编译时输出变.
所以我把一切都搞定了,这就是我现在如何调用MSBuild:
<msbuild project="${root.dir}\WebPortal\WebPortal ExtJS\WebPortal ExtJS.sln"
verbosity="${tools.dotnet.msbuild.verbosity}">
<property name="Configuration" value="${msbuild.configuration}" />
<property name="DeployDir" value="..\..\${output.dir}" />
<property name="DeployOnBuild" value="true" />
<property name="PublishProfile" value="BuildMachineDeployment" />
<property name="DebugSymbols" value="${msbuild.debugSymbols}" />
<property name="DebugType" value="${msbuild.debugType}" />
<arg value="/m" />
</msbuild>
Run Code Online (Sandbox Code Playgroud)
然后在我的部署配置文件的.pubxml文件中,我将此属性设置为使用我创建的$(DeployDir)变量:
<publishUrl>$(DeployDir)\EmerGeo Portal</publishUrl>
Run Code Online (Sandbox Code Playgroud)
现在我的解决方案中的所有Web项目都会自动构建并部署到正确的文件夹.
| 归档时间: |
|
| 查看次数: |
6165 次 |
| 最近记录: |