美好的一天!
我在这里找到了这个解决方案:VS2010 Web Publish command line version of File System deploy
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
.\MyProject.csproj /p:Configuration=Release;DeployOnBuild=True;PackageAsSingleFile=False;outdir=c:\_OuputDir\
但似乎没有执行Web.config转换。
可能有更好的\更清洁的方式来复制“发布Web”VS2010对话框吗?
更新:标记的答案是执行发布的最短命令行,到目前为止我找到了。应用了Web.config转换,但连接字符串的处理方式不同,这里是description\workaround
答案 0 :(得分:1)
摘自:http://ashwaniksharma.spaces.live.com/Blog/cns!AD160FFA5932F17E!206.entry
MSBuild .\MyProject.csproj /t:TransformWebConfig;/p:Configuration=Release;DeployOnBuild=True;PackageAsSingleFile=False;outdir=c:\_OuputDir\
答案 1 :(得分:1)
这可能有效(我发现here):
msbuild solution.sln /p:Configuration=Release;DeployOnBuild=true;DeployTarget=Package;_PackageTempDir=..\publish
然而,当我尝试运行它时,它给了我以下错误(我还在努力解决):
C:\ [path] \ [config] \ csautoparameterize \ original \ web.config(40):错误ASPCONFIG:使用注册为allowDefinition =' MachineToApplication'的部分是错误的。超出应用水平。此错误可能是由于虚拟目录未在IIS中配置为应用程序。
答案 2 :(得分:1)
使用 Web.config转换 CCNET 的解决方案:
<tasks>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
<workingDirectory>E:\VersionesCC\Trunk_4\SBatz\Gertakariak_Orokorrak\GertakariakMS\Web</workingDirectory>
<projectFile>GertakariakMSWeb2.vbproj</projectFile>
<targets>Build</targets>
<timeout>600</timeout>
<logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
<buildArgs>
/noconsolelogger /p:Configuration=Release /v:diag
/p:DeployOnBuild=true
/p:AutoParameterizationWebConfigConnectionStrings=false
/p:DeployTarget=Package
/p:_PackageTempDir=E:\Aplicaciones\GertakariakMS2\Web
</buildArgs>
</msbuild>
</tasks>