Ric*_*ard 5 powershell nuget-package
我有一个nuget包,它添加了一个可执行文件,我需要在项目每次构建后运行.
我可以通过在每个项目文件中添加一个部分来手动添加它,如下所示:
<Target Name="AfterBuild">
<PropertyGroup>
<PathToOutputExe>..\bin\Executable.exe</PathToOutputExe>
<PathToOutputJs>"$(MSBuildProjectDirectory)\Scripts\Output.js"</PathToOutputJs>
<DirectoryOfAssemblies>"$(MSBuildProjectDirectory)\bin\"</DirectoryOfAssemblies>
</PropertyGroup>
<AspNetCompiler Condition="'$(MvcBuildViews)'=='true'" VirtualPath="temp" PhysicalPath="$(ProjectDir)" />
<Exec Command="$(PathToOutputExe) $(PathToOutputJs) $(DirectoryOfAssemblies)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
如何在安装nuget包时将其添加到项目中?(即在Install.ps1文件中使用DTE $项目对象)
我非常感谢任何帮助.
谢谢
理查德
从NuGet 2.5开始,按照惯例,如果添加目标文件build\{packageid}.targets(注意'build'与内容和工具处于同一级别),NuGet会自动将Import添加到项目中的.targets文件中.然后你不需要在install.ps1中处理任何东西.导入将在卸载时自动删除.
另外,我认为推荐的方法可以创建一个单独的目标,配置为在标准的"Build"目标之后运行:
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="NuGetCustomTarget" AfterTargets="Build">
<PropertyGroup>
<PathToOutputExe>..\bin\Executable.exe</PathToOutputExe>
<PathToOutputJs>"$(MSBuildProjectDirectory)\Scripts\Output.js"</PathToOutputJs>
<DirectoryOfAssemblies>"$(MSBuildProjectDirectory)\bin\"</DirectoryOfAssemblies>
</PropertyGroup>
<AspNetCompiler Condition="'$(MvcBuildViews)'=='true'" VirtualPath="temp" PhysicalPath="$(ProjectDir)" />
<Exec Command="$(PathToOutputExe) $(PathToOutputJs) $(DirectoryOfAssemblies)" />
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
这是添加后构建目标的脚本。它还使用上面提到的 NugetPowerTools。
$project = Get-Project
$buildProject = Get-MSBuildProject
$target = $buildProject.Xml.AddTarget("MyCustomTarget")
$target.AfterTargets = "AfterBuild"
$task = $target.AddTask("Exec")
$task.SetParameter("Command", "`"PathToYourEXe`" $(TargetFileName)")
Run Code Online (Sandbox Code Playgroud)
困难的部分是正确引用。这就是我的 powertools 脚本中的样子。
| 归档时间: |
|
| 查看次数: |
1305 次 |
| 最近记录: |