在Windows Server 2008 r2 sp1机器上,我使用chocolatey来安装AWSTools.Powershell包.这反过来,安装了powershell 3.现在,powershell被无可救药地打破了,我无法弄清楚任何修复它或卸载并重新安装它的方法.
我担心我唯一的答案是完全重建机器,但想问一下是否有办法解决它.
powershell实际运行,它似乎找不到任何内置cmdlet.它似乎找到别名,但不能执行它们下面的内容.例如,发出ls来查看目录内容会产生:
PS C:\Users\Administrator> ls
ls : The term 'Get-ChildItem' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ ls
+ ~~
+ CategoryInfo : ObjectNotFound: (Get-ChildItem:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Run Code Online (Sandbox Code Playgroud)
可能是在开始时缺少一些设置环境的脚本执行.如果你比我更了解并且可以提供一些帮助并且可以使我不必重建这台机器,我将非常高兴.
如果我设置两台Windows Server 2008 r2机器,我可以让分布式事务只在一个方向上工作.当我能让DTCPing成功运作时,DTC正在运行.但是,DTCPing仅在我从一台机器启动测试到另一台机器时才有效,而不是相反.
让我们调用我的机器应用程序和数据库.
如果我在两个和关键应用程序上启动DTCPing到数据库中的实例并按Enter键,DTCPing反映成功.
如果我在两个和关键数据库上启动DTCPing到app上的实例,我没有得到任何说有失败的东西,它只是没有运行完成.看起来它完成了rpc测试,但没有进行绑定测试.日志确实反映了错误,但我的理解是它与群集检查有关,并且这些机器不在群集中并且无关紧要.如果这是不正确的,请通知我,但是当我在成功的方向上进行DTCP时,我确实在日志中看到了同样的错误.
应用程序DTCPing窗口中的输出显示如下:
DTCping log file: C:\DTCPing\APP1840.log
RPC server is ready
Please Start Partner DTCping before pinging
++++++++++++Validating Remote Computer Name++++++++++++
Please refer to following log file for details:
C:\DTCPing\APP1840.log
Invoking RPC method on database
RPC test is successful
++++++++++++RPC test completed+++++++++++++++
Please start PING from database to complete the test
Run Code Online (Sandbox Code Playgroud)
数据库窗口中的输出显示如下:
DTCping log file: C:\DTCPing\DATABASE1612.log
RPC server is ready
Please Start Partner DTCping before pinging
Please send following LOG to Microsoft for analysis:
Partner …Run Code Online (Sandbox Code Playgroud) 我已经找到了很多关于在Sql CE 4中使用Entity Framework 6以及在Sql CE 4和3.5中使用Entity Framework 4的信息,但是使用Entity Framework 6和Sql CE 3.5是另一回事.据我所知,CE 3.5在System.Data.SqlServerCe.Entity.dll中附带了Entity Framework 4的提供程序.此提供程序使用旧版本的基类,如果我尝试使用它,我会得到以下异常:
System.InvalidOperationException:实体框架提供程序类型'System.Data.SqlServerCe.SqlCeProviderServices,System.Data.SqlServerCe.Entity,Version = 3.5.1.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'的'Instance'成员未返回继承自'System.Data.Entity.Core.Common.DbProviderServices'的对象.实体框架提供程序必须从此类继承,并且"实例"成员必须返回提供程序的单例实例.这可能是因为提供者不支持实体框架6或更高版本; 有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882.
这是有道理的,并指出我所需要的是实现Sql Server CE 3.5 SP2的Entity Framework 6的提供程序.我似乎无法找到这样的东西.nuget包EntityFramework.SqlServerCompact似乎只引用了所有版本的Sql Compact 4.这样的提供者是否已经存在?如果是这样,它在哪里可以找到?我似乎很难找到它.如果没有,那么考虑通过使用CE 4中的代码来引用3.5来实现它是否是现实的,或者CE 3.5和4之间的区别是否过于简单?还有另一种解决方法吗?
我需要使用3.5,因为需要使用合并复制,这在4中不受支持,并且想要使用Entity Framework.如果没有直截了当的答案,我可能会使用Entity Framework之外的其他内容.
entity-framework sql-server-ce sql-server-ce-3.5 entity-framework-6
在Powershell脚本中,我希望能够知道我所依赖的软件包的版本。我可以得到nuget.exe告诉我这些信息吗?
我试图做类似的事情:
nuget list nunit.runners
Run Code Online (Sandbox Code Playgroud)
这对于某些软件包来说效果很好,但是对于某些软件包(例如示例中的nunit.runners),它返回了整个软件包列表,而不只是我想要的软件包列表。
如果有人可以指出一种使nuget列表仅返回与搜索条件完全匹配的单个项的方法就足够了。
我的问题确实是,但是,最简单的方法是向nuget提要特定软件包的最新版本的版本号吗?