在.Net中,给定一个类型名称,是否有一个方法告诉我在哪个程序集(System.Reflection.Assembly的实例)中定义了该类型?
我假设我的项目已经有了对该程序集的引用,只需要知道它是哪一个.
我有一个WPF应用程序.在构建它时,我收到以下错误:
无法加载文件或程序集或其依赖项之一.参数不正确.(HRESULT异常:0x80070057(E_INVALIDARG))
应用程序正在尝试从虚拟驱动器加载程序集(作为调试文件夹)
例如:[subst r:c:[我的装配箱pth]
之前我将c:\ bin安装为网络驱动器,并且出现了以下错误.
该程序集可能已从Web下载.如果已从Web下载程序集,则Windows将其标记为Web文件,即使它驻留在本地计算机上也是如此.这可能会阻止它在您的项目中使用.您可以通过更改文件属性来更改此指定.仅取消阻止您信任的程序集.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=179545.
编辑:顺便说一句,我无法在属性窗口中找到"取消阻止"按钮.
我已经为本地计算机上的工作流创建了一个类库并构建它.我将完整的解决方案移动到Tridion服务器并尝试使用regasm.exe工具在服务器中注册程序集,如下所示:
C:\User\XYZ\Desktop\>RegAsm \codebase F:\Workflow\WorkflowHandler/bin/debug/WorkflowHandler.dll
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
无法加载'F:\ Workflow\WorkflowHandler/bin/debug/WorkflowHandler.dll',因为它不是有效的.NET程序集.
我的服务器细节:
安装了64位,Windows Server 2008 R2 Enterprise和.NET Framework 4.
我在我的项目中使用Netonsoft.Json.它工作正常,直到我开始在我的项目中集成Paypal SDK.我的代码如下.
String AccessToken =
new PayPal.OAuthTokenCredential("", "").GetAccessToken(); ---->>>> This Line Throwing An Error
PayPal.Api.Payments.Address add = new PayPal.Api.Payments.Address();
add.city = TextBoxCity.Text;
add.line1 = TextBoxAddress.Text;
add.phone = TextBoxPhoneNumber.Text;
add.postal_code = TextBoxZipcode.Text;
add.state = TextBoxState.Text;
PayPal.Api.Payments.CreditCard cc = new PayPal.Api.Payments.CreditCard();
cc.number = TextBoxCreditCardNumber.Text;
cc.first_name = TextBoxFirstName.Text;
cc.last_name = TextBoxLastName.Text;
cc.expire_month = Convert.ToInt16(TextBoxExpiryMonth.Text);
cc.expire_year = Convert.ToInt16(TextBoxExpiryYear.Text);
cc.cvv2 = TextBoxCVVNumber.Text;
cc.billing_address = add;
cc.Create(AccessToken);
Run Code Online (Sandbox Code Playgroud)
我得到如下错误
System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located …
Run Code Online (Sandbox Code Playgroud) 我正在VS2010中构建一个ASP.NET应用程序.我有许多单独的程序集(类库)和相应的Test项目.
在其中一个类库中,我使用App.config文件来存储设置.程序集本身使用以下代码来检索设置:
string tmp = ConfigurationManager.AppSettings["mySetting"];
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试在单独的测试项目中创建单元测试时,测试不会获取App.config文件中的设置.如果我将App.config文件复制到Test项目中,它可以正常工作.
如何确保每个程序集使用自己的App.config文件副本.如果我不得不复制配置文件,它会引入问题.还有一个问题,因为可能有多个配置文件,每个程序集一个 - 它们如何在一个测试项目中共存?
谢谢!
我编写了这个PowerShell脚本,该脚本应该在特定日期范围内存档所有日志文件.
$currentDate = Get-Date;
$currentDate | Get-Member -Membertype Method Add;
$daysBefore = -1;
$archiveTillDate = $currentDate.AddDays($daysBefore);
$sourcePath = 'C:\LOGS';
$destPath='C:\LogArchieve\_'+$archiveTillDate.Day+$archiveTillDate.Month+$archiveTillDate.Year+'.zip';
foreach( $item in (Get-ChildItem $sourcePath | Where-Object { $_.CreationTime -le $archiveTillDate }) )
{
[Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem");
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal;
[System.IO.Compression.ZipFile]::CreateFromDirectory($sourcePath,$destPath, $compressionLevel, $false);
}
Run Code Online (Sandbox Code Playgroud)
它一直工作到foreach
循环之前,但是在循环中它会产生以下错误:
Unable to find type [System.IO.Compression.CompressionLevel]: make sure that the assembly containing this type is loaded.
At line:4 char:65
+ $compressionLevel = [System.IO.Compression.CompressionLevel] <<<< ::Optimal;
+ CategoryInfo : InvalidOperation: (System.IO.Compression.CompressionLevel:String) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound …
Run Code Online (Sandbox Code Playgroud) compression powershell runtime-error powershell-2.0 .net-assembly
我想使用System.Numerics中的BigInteger类,但如果我想写
using System.Numerics;
Run Code Online (Sandbox Code Playgroud)
Numerics
找不到.我在网上搜索,发现我必须添加一个引用System.Numerics.dll
,但是我该怎么做呢?
我使用"InternalsVisibleTo"属性和程序集将内部方法/类公开给我的单元测试项目.
我现在需要将该程序集安装到GAC中,因此我需要给它一个强名称.当我尝试这样做时,我在Visual Studio中收到以下错误.
强名称签名程序集必须在其InternalsVisibleTo声明中指定公钥
一点谷歌搜索带我到下面的文章:
https://msdn.microsoft.com/en-us/library/bb763089.aspx
本文指出:
"确定强名友人集会的公钥."
本文未说明如何确定公钥.我在哪里可以找到装配的公钥?此外,一旦我有公钥,这是否是声明属性的正确方法?
[assembly: InternalsVisibleTo("Namespace.Assembly.Example.Name, PublicKey=ThePublicKey")]
Run Code Online (Sandbox Code Playgroud) 我有一个项目,我为它创建了一个强名称密钥文件.
我怎么知道我的集会的强名是什么?看来这应该是显而易见的,但我找不到任何参考.
c# strongname .net-assembly visual-studio visual-studio-2012
我Assembly.GetEntryAssembly().GetName()
用来获取应用程序/程序集名称及其版本,但我没有看到公司名称和版权的任何变量.我怎么做到的?
.net-assembly ×10
c# ×7
.net ×4
asp.net ×1
compression ×1
powershell ×1
reflection ×1
strongname ×1
tdd ×1
tridion ×1
wpf ×1