我试图在nuget包的目标上转换unity.config文件的内容。那个文件看起来像这样:
<?xml version="1.0"?>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<container>
<register type="SomeProject.Data.ISecurityManager, SomeProject.Data"
mapTo="SomeProject.MockSecurityManager, SomeProject.Data" />
</container>
</unity>
我想更新&#34; mapTo&#34;的值。我使用标准的web.config.install.xdt更新了web.config中的一堆内容,但是这里的关键问题似乎是Unity命名空间和转换命名空间之间的命名空间冲突。因此,当我使用以下标题创建一个xdt进行转换时:
<unity xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
该文件中没有任何内容匹配,因为它正在查找具有实际根命名空间的文件,如下所示:
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
我开始倾向于使用Powershell脚本......任何人都可以使这种方法有效吗?
答案 0 :(得分:3)
尝试为unity
节点添加两个名称空间以转换配置。它看起来像这样:
<?xml version="1.0"?>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity" xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<container>
<register xdt:Transform="Replace"
xdt:Locator="Match(type)"
type="SomeProject.Data.ISecurityManager, SomeProject.Data"
mapTo="It's my test type)">
</register>
</container>
</unity>
对我来说很好。如果它不适合你,请告诉我。