1

由于某些限制,我正在使用 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类中使用该方法

项目类参考

谢谢

4

1 回答 1

1

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

对正在使用的项目文件进行更改的主要问题是您必须以某种方式知道文件名。注入 PowerShell 脚本的参数如下:

参数($installPath,$toolsPath,$package,$project)

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

也许这会帮助你开始。如果您确实有适当的解决方案可以在包安装期间完全自动化此操作,请随时在此处分享(或向我发送 Pull Request :-))。

于 2013-07-23T06:26:59.477 回答