可以通过批处理文件以编程方式删除和添加对csproj的引用



我正在编写一个简短的批处理文件,以准备一个带有Examples项目的控制库DLL,以便通过sip文件进行部署,我有以下问题。

给定已知位置的csproj文件和已知位置的DLL,是否可以从批处理文件中以编程方式更新csproj(通过第三方命令行exe或其他脚本)以添加新的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上(它是从那里复制的),在开发解决方案中,它以非模糊形式引用ControlLibrary.csproj的输出。

本质上,我在这里创建的是一个文件夹结构,用于压缩和运送ControlLibrary以及示例,因此,需要更新引用。

更新-使用Powershell解决

请参阅有关使用Powershell 添加和删除引用的相关问答

csproj文件是XML文件,您可以轻松地编写命令行应用程序来操作这些文件(添加、删除节点等)。

您可以从批处理文件中调用这样的命令行应用程序。

您可以在以下位置找到该文件的架构:

%windir%Microsoft.NETFramework[framework version]Microsoft.Build.xsd

如SO回答中所述。

我不明白为什么在您的情况下需要修改csproj文件。只要确保csproj文件中的库引用是相对的,即......SDKWPF4.0ControlLibrary.dll,即使将整个文件夹层次结构移动到新位置,它也会保持良好的工作状态。

如果你想简化将库添加到新项目中的过程,可以看看NuGet。这是分发和部署库的最佳方式。

相关内容

  • 没有找到相关文章

最新更新