有没有人知道是否有办法"转换"值的特定部分而不是替换整个值或属性?
例如,我有几个appSettings条目,指定不同Web服务的Url.这些条目在开发环境中与生产环境略有不同.有些不像其他人那么微不足道
<!-- DEV ENTRY -->
<appSettings>
<add key="serviceName1_WebsService_Url" value="http://wsServiceName1.dev.domain.com/v1.2.3.4/entryPoint.asmx" />
<add key="serviceName2_WebsService_Url" value="http://ma1-lab.lab1.domain.com/v1.2.3.4/entryPoint.asmx" />
</appSettings>
<!-- PROD ENTRY -->
<appSettings>
<add key="serviceName1_WebsService_Url" value="http://wsServiceName1.prod.domain.com/v1.2.3.4/entryPoint.asmx" />
<add key="serviceName2_WebsService_Url" value="http://ws.ServiceName2.domain.com/v1.2.3.4/entryPoint.asmx" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
请注意,在第一个条目中,唯一的区别是".prod"中的".dev".在第二项,子域名是不同的:"MA1-lab.lab1"从"ws.ServiceName2"
到目前为止,我知道我可以在Web中做这样的事情.Release.Config:
<add xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)" key="serviceName1_WebsService_Url" value="http://wsServiceName1.prod.domain.com/v1.2.3.4/entryPoint.asmx" />
<add xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)" key="serviceName2_WebsService_Url" value="http://ws.ServiceName2.domain.com/v1.2.3.4/entryPoint.asmx" />
Run Code Online (Sandbox Code Playgroud)
但是,每次更新该Web服务的版本时,我都必须更新Web.Release.Config,这会破坏我的web.config更新的目的.
我知道我也可以将该URL拆分为不同的部分并单独更新它们,但我宁愿将它全部放在一个键中.
我已经浏览了可用的web.config Transforms但是nothings似乎是我想要完成的东西.
这些是我用作参考的网站:
Vishal Joshi的博客,MSDN帮助和Channel9视频
任何帮助将非常感激!
-D
asp.net web-config transformation visual-studio-2010 web-deployment
我想让web.config转换在本地工作,但显然只在进行部署时才会发生转换.
有没有人知道如何运行msbuild目标"TransformWebConfig"而不通过"rebuild"进程,还指定并输出目录在哪里吐出转换后的web.config?
编辑:使用Sayed的答案,我创建了一个.bat文件来为我运行任务:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Msbuild.exe "D:\Demo\Transformation.proj" /t:TransformWebConfig
copy /Y "D:\Demo\Web.config" "D:\MyProject\Web.config"
del ""D:\Demo\Web.config"
Run Code Online (Sandbox Code Playgroud)
"Transformation.proj"是Sayed的代码片段的副本,在下面的答案中.只需指定转换的源,目标和目标.新文件(在本例中为已转换的"web.config")将位于"D:\ Demo"目录中.我只是将其复制以覆盖我的项目的web.config,最后,删除"demo"文件夹中生成的文件.
另外,我创建了一个宏来运行这个批处理文件并为我执行转换:
Public Module DoTransform
Sub RunTransformBatchFile()
Try
Process.Start("D:\Demo\RunTransform.bat")
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
您还可以在工具栏上添加一个按钮来运行此批处理和/或指定要执行的快捷键.
asp.net web-config visual-studio-2010 web-deployment msdeploy
简而言之,我希望有人能够点击链接,并获得一次性使用的pdf.我们有库来创建PDF文件,所以这不是问题.
我们可以生成指向aspx页面的链接,让该页面生成pdf,将pdf保存到文件系统,然后将Response.Redirect保存到保存的pdf.然后我们必须以某种方式跟踪和清理PDF文件.
由于我们不需要保留这些数据,如果可能的话,我想做的是让aspx页面生成pdf,并将其作为对原始请求的响应直接提供.这可能吗?
(在我们的例子中,我们正在使用C#,我们希望提供pdf,但似乎任何解决方案都可能适用于各种.NET语言并返回文件类型.)