我尝试通过 MSI 安装程序在安装服务时以编程方式将 dll 的引用添加到 csproj 文件中。
<Reference Include="TestProject">
<HintPath>..\..\TestProject.dll</HintPath>
</Reference>
protected override void OnAfterInstall(IDictionary savedState)
我在 ProjectInstaller.cs中添加节点的源代码行放在下面
var refnode = xml.CreateElement("Reference");
var attribute = xml.CreateAttribute("Include", null);
attribute.Value = "TestProject";
refnode.Attributes.Append(attribute);
var hintPath = xml.CreateNode(XmlNodeType.Element, "HintPath", null);
hintPath.InnerText = "..\..\TestProject.dll";
refnode.AppendChild(hintPath);
xml.AppendChild(refnode);
xml.Save(file);
代码输出
<Reference Include="TestProject" xmlns="">
<HintPath>..\..\TestProject.dll</HintPath>
</Reference>
但是源代码xmlns=""
在 Reference 元素中添加了更多属性。这段代码有什么问题我将如何删除xmlns=""
属性,因为 csproj 文件不采用自定义属性。