使用Init.ps1在csproj文件中添加项目

时间:2013-07-22 14:00:26

标签: powershell nuget nuget-package

我正在使用Nuget来安装软件包,因为我必须在我的csproj文件中生成引用和程序集的路径。

我想用你在第一次安装软件包时运行的Init.ps1文件来做这件事。 我要添加的元素是Reference元素。

应该像

<Reference Include="Library.MyLib.Imaging, Version=255.255.255.255, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\SDK.0.9.2\lib\wp8\X86\Library.mylib.Imaging.winmd</HintPath>
</Reference>

有些人可以指导我如何将这些添加到csproj文件中。我相信可以使用AddItem

中的Project方法

project Class Reference

感谢

1 个答案:

答案 0 :(得分:1)

请注意您对init.ps1的错误假设:每次初始化软件包时(或每次加载解决方案时)都会运行PowerShell脚本 ,这可能不是您的意思想要在这种情况下。您必须使用install.ps1代替,仅在安装软件包时运行一次。

更改耗材项目文件的主要问题是您必须以某种方式知道文件名。注入PowerShell脚本的参数如下:

  

param($ installPath,$ toolsPath,$ package,$ project)

我有类似的要求和我所做的,而不是在软件包安装过程中自动执行:我在软件包管理器控制台中公开了一个cmdlet供消费者使用。 您可以在GitHub上找到我在NuSpec程序包中实现的示例:https://github.com/myget/NuGetPackages/blob/master/NuSpec/tools/NuSpec.psm1

也许这会帮助你开始。如果你有一个合适的解决方案,在包安装过程中完全自动化,请随时在这里分享(或发送一个拉请求: - ))。