使用Powershell从NuGet包调用类文件方法

时间:2015-10-19 11:50:03

标签: c# powershell

我试图从我的类库中创建一个nuget包。到目前为止,我设法在测试项目中创建并安装包,但我还想创建一个包管理器命令。我的String.StartsWith()包是使用NuGet创建的。

NuGet包结构

structure

NuGet文件内容

init.ps1

NuGet Package Explorer

MyNuGetCommands.psm1

param($installPath, $toolsPath, $package) 
Import-Module (Join-Path $toolsPath MyNuGetCommands.psm1)

我在网上找到了Hello函数,它在我的项目中工作,所以我可以添加一些行found here来调用我的C#方法。当我在我的测试项目中调用Hello函数时,我得到了这个错误:

错误1

  

异常调用" LoadFile"用" 1"参数:"找不到网络路径。 (HRESULT异常:0x80070035)"在   \ svr \ redirectedfolders \ Stage \ my documents \ visual studio   2015年\项目\测试\包\ XML.EF.1.0.0 \工具\ MyNuGetCommands.psm1:5   炭:43   + $ lib = [Reflection.Assembly] :: LoadFile<<<< (" \ lib中\ EF.XML.dll&#34)       + CategoryInfo:NotSpecified:(:) [],MethodInvocationException       + FullyQualifiedErrorId:DotNetMethodException

错误2

  

New-Object:找不到类型[Parser]:确保程序集   包含此类型的内容已加载。在   \ svr \ redirectedfolders \ Stage \ my documents \ visual studio   2015年\项目\测试\包\ XML.EF.1.0.0 \工具\ MyNuGetCommands.psm1:6   焦炭:22   + $ obj = new-object<<<<分析器       + CategoryInfo:InvalidType:(:) [New-Object],PSArgumentException       + FullyQualifiedErrorId:TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

错误3

  

您无法在空值表达式上调用方法。在   \ svr \ redirectedfolders \ Stage \ my documents \ visual studio   2015年\项目\测试\包\ XML.EF.1.0.0 \工具\ MyNuGetCommands.psm1:7   焦炭:29   + $ result = $ obj.UpdateXml<<<< ()       + CategoryInfo:InvalidOperation:(UpdateXml:String)[],RuntimeException       + FullyQualifiedErrorId:InvokeMethodOnNull

所以我认为在上面的错误中function Hello($name, $city) { Write-Host (‘Hello ‘ + $name + ‘. See you soon in ‘ + $city + ‘.’) $lib = [Reflection.Assembly]::LoadFile("\\lib\EF.XML.dll") $obj = new-object Parser $result = $obj.UpdateXml() } Export-ModuleMember Hello Register-TabExpansion ‘Hello’ @{ ‘name’ = { "MSFTees", "MVPs", "My friends" }; ‘city’ = { "Redmond", "Seattle", "Bellevue", "Duvall" }; } 是空的,但是如何解决这个问题(我不确定LoadFile路径是否正确)?我确实在obj中运行了set-executionpolicy RemoteSigned

EF.XML.dll中的Parser.cs文件结构

Powershell

这是我用来从.cs文件调用该方法的代码(可以使用,但我想从我的public class Parser { public void UpdateXml() { //code } } 调用它:

Powershell Module

0 个答案:

没有答案