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