.NET在运行时使用什么进程来定位引用的程序集,它是否与编译期间用于定位引用程序集的进程不同?我特别感兴趣的是搜索的位置及其搜索顺序以及可能影响结果的任何参数/配置设置.
在Visual Studio中,当您在.csproj文件中添加对解决方案中现有项目的引用时,它最终会如下所示:
<ProjectReference Include="..\TestProject2\TestProject2.csproj">
<Project>{15EC8369-B0C5-4F71-A366-19042F450A2D}</Project>
<Name>TestProject2</Name>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)
如果我通过EnvDTE添加对程序集DLL的引用:
var p = _project as VsProject;
p.References.Add(<path to assembly DLL>);
Run Code Online (Sandbox Code Playgroud)
它像这样结束:
<Reference Include="TestProject2.csproj">
<HintPath>..\TestProject2\bin\Debug\TestProject2.csproj.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)
这不是很好,因为如果我切换到Release版本,它仍然会引用调试程序集.另一个问题是我必须先构建引用的程序集,然后才能将其添加为引用.使用Visual Studio UI,我可以添加对未构建项目的引用.
是否可以通过EnvDTE API添加项目引用?
我知道我可以将.csproj文件作为XML文档操作并做任何我想做的事情,但是自从我开始在EnvDTE的路径上,我宁愿坚持下去.
请耐心等待,因为我是一名Java开发人员,只是在ASP.Net世界中崭露头角
我开始在现有的C#VS2012代码库中编码.它使用nuget,在packages.config中提到了Newtonsoft
当我右键单击Controllers>时Add a new controller,我收到以下错误.
无法加载文件或程序集
'nunit.framework, Version=2.2.4.0, Culture=neutral, PublicKeyToken=...'或其依赖项之一.该系统找不到指定的文件.
现在环顾谷歌,似乎GAC缺少一个NUnit程序集.不知道该怎么办.我应该得到NUnit吗?为什么要寻找某个版本的nunit(而且这个版本太旧了)?
任何帮助我解决这个问题将非常感谢!
我一直在关注本教程.一切都很顺利,直到我到达这一部分:
设置对StorageClient库的引用.您可以将示例项目添加到解决方案并添加项目引用,也可以添加对已编译的dll的引用.我将把StorageClient项目添加到解决方案中并添加项目引用.
我无法找到StorageClient项目.我有SDK v1.2,它有samples-cs.zip.StorageClient不存在.
SDK确实有ref/Microsoft.WindowsAzure.StorageClient.dll.我尝试在我的ASP项目中添加对它的引用,但它不起作用.VS无法识别类型TableStorageEntity,也无法识别命名空间Microsoft.Samples.ServiceHosting.StorageClient.
我究竟做错了什么?我可以找到StorageClient某处并使用它吗?如果它被取出SDK,是否意味着它不再受支持?如果是这样,为什么有DLL?
我有一个 VS2010 解决方案,其中包含一个“hello world”WPF 应用程序和一个类库项目。在我的类库中,我在名为 ReportImageMerge.Core 的命名空间中定义了一个类。我的 WPF 应用程序项目引用了该项目,但是当我运行构建时,出现了几个错误。其余是对我的自定义命名空间中的对象的引用的父错误是这样的:
Error 3 The type or namespace name 'Core' does not exist
in the namespace 'ReportImageMerge' (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我删除项目引用并将其添加回来,我的错误与所有红色波浪线一起消失。只有当我重建时,我才会重新看到错误。命名空间和类定义如下:
namespace ReportImageMerge.Core.Business
{
public class ReportHelper
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
类和名称引用如下:
using ReportImageMerge.Core.Business;
namespace ReportImageMerge.Reporter
{
public partial class MainWindow : Window
{
public ReportHelper ReportHelper { get; set; }
...
}
}
Run Code Online (Sandbox Code Playgroud)
我发现的与我的问题相关的唯一信息似乎以目标框架为中心。WPF 应用程序默认设置为“.NET Framework 4 Client Profile”,类库设置为“.NET Framework 4”。对于使用 Silverlight 项目引用类库的人,大多数建议是使用特定于 Silverlight 的类库。WPF 应用程序项目似乎并不相同。
我已经看到了将引用项目的目标框架更改为与引用的应用程序相同的建议,但如果我这样做,我会收到未指定的运行时错误。
构建解决方案后,如何识别类库命名空间?