通过MSBUILD设置ASP.NET版本

时间:2008-12-09 19:36:55

标签: asp.net msbuild

我正在尝试通过msbuild在远程服务器上创建一个新网站(我喜欢称之为“msdeploy”)。我已经下载并使用了SDC任务,MSBuildExtension任务和MSBuildCommunity任务,但我无法正确完成任务。

我认为WebDirectorySetting(来自MSBuild.Community.Tasks.IIS)是我最好的选择,但我找不到合适的SettingName来传递。

我想使用某种MSBuild任务来实现这一目标,但也许它根本就不存在。自定义VBS或WMI是我最后的选择......

由于

5 个答案:

答案 0 :(得分:2)

在IIS7上,你可以用MSBuild扩展包这样做:

<MSBuild.ExtensionPack.Web.Iis7AppPool TaskAction="Create"
              Name="$(AppPool)"
              IdentityType="SpecificUser"                  
              PipelineMode="Integrated"
              ManagedRuntimeVersion="v4.0"
              PoolIdentity="$(UserName)"
              IdentityPassword="$(UserPassword)"

答案 1 :(得分:1)

我曾尝试过一段时间做同样的事情,但最终意识到我们基本上都使用版本2.0,所以我在我部署的机器上使用aspnet_regiis作为默认设置。

如果可以在远程服务器上运行shell命令,则可以使用带有-sn的aspnet_regiis.exe将特定的asp.net版本注册到应用程序。

http://msdn.microsoft.com/en-us/library/k6h9cz8h(VS.80).aspx

答案 2 :(得分:1)

使用Exec标记从msbuild任务中运行aspnet_regiis工具。它并不像“干净”,但它确实有效。

答案 3 :(得分:1)

感谢您的回复。我玩弄了这两个建议,但两者都不是“完全”我想要的东西 - 即使它完成了工作。我不能看到我们回到1.1,所以我们最终确定它是默认值,但我仍然希望有一个神奇的设置可以做到这一点。

再次感谢

答案 4 :(得分:0)

这一切都不简单,如下所示:

首先,创建网站目录:

<WebDirectoryCreate
    ServerName="$(DeployServerName)"        
    VirtualDirectoryName="MyVirualSiteName" />

其次,应用所需的ASP.NET版本:

<InstallAspNet 
    Path="W3SVC/1/Root/MyVirualSiteName" 
    Version="Version20" />

尽我所能,