可以通过批处理文件以编程方式删除和添加对csproj的引用吗?
我正在编写一个简短的批处理文件来准备一个带有Examples项目的控件库DLL,以便通过sip文件进行部署,并提出以下问题。
给定已知位置的csproj文件和已知位置的DLL,是否可以以编程方式从批处理文件(通过第三方命令行exe或其他脚本)更新csproj以添加新DLL?
我的文件夹结构是
/Build /SDK /WPF /4.0 : ControlLibrary.dll sits here /Examples /WPF /4.0 : Examples.csproj sits here
假设批处理文件处于/ Build级别,有没有办法修改Examples.csproj以引用ControlLibrary.dll?
只是为了澄清,我之所以有这样的结构是因为我希望部署一个示例csproj来附带我的控件库。 Examples.csproj应该引用SDK /下的混淆控件库。 examples.csproj也存在于dev trunk(它已被复制)上,并且在开发解决方案中它引用了非混淆forms的ControlLibrary.csproj的输出。
基本上我在这里创建的是一个文件夹结构,用于压缩和发送ControlLibrary以及示例,因此需要更新引用。
更新 – 使用Powershell解决
请参阅使用Powershell 添加和删除引用的相关问题和答案
csproj
文件是XML文件 – 您可以轻松编写命令行应用程序来操作这些文件(添加,删除节点等)。
您可以从批处理文件中调用此类命令行应用程序。
您可以在以下位置找到此文件的架构:
%windir%Microsoft.NETFramework[framework version]Microsoft.Build.xsd
如本SO答案所述 。
我不明白你为什么需要在你的情况下修改csproj文件。 只需确保csproj文件中的库引用是相对的,即......SDKWPF4.0ControlLibrary.dll
,即使将整个文件夹层次结构移动到新位置,它也能保持正常工作。
如果您正在尝试简化将库添加到新项目中,请查看NuGet 。 这是分发和部署库的最佳方式。
上述就是C#学习教程:可以通过批处理文件以编程方式删除和添加对csproj的引用吗?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/997856.html