这是场景。 我创建了一个全新的Asp.Net DNX RC2 Final项目。我还在我的解决方案中添加了一个.Net类库项目(均在FX 4.6.1下)。类库项目位于src文件夹中。
然后,我添加了对类库的引用,它可以在更改project.json文件后成功恢复所有包。
我在我的类库中添加了一个简单的foo函数
from ipaddress import IPv4Network
network = IPv4Network('10.220.1.0/24')
reserved = {'10.220.1.1', '10.220.1.2', '10.220.1.3', '10.220.1.5'}
hosts_iterator = (host for host in network.hosts() if str(host) not in reserved)
# Using hosts_iterator:
print(next(hosts_iterator)) # prints 10.220.1.4
print(next(hosts_iterator)) # prints 10.220.1.6
print(next(hosts_iterator)) # prints 10.220.1.7
# Or you can iterate over hosts_iterator:
for host in hosts_iterator:
print(host)
最后在我的主页/索引视图中,我在顶部添加了以下内容
namespace ClassLibrary1
{
public class Class1
{
public static string Foo()
{
return "Bar";
}
}
}
解决方案编译时没有错误。 你可能认为这么好,让我们继续。
然后,当我运行解决方案时,显示以下内容:
在运行时,我的类库不可用。
答案 0 :(得分:1)
我遇到了类似的情况。在我的情况下,我在Visual Studio中得到了一个RazorEngine异常,它至少让我知道发生了什么(这就像缺少引用异常,即使类库被添加为参考)。
我能让它工作的唯一方法(我希望有更好的方法)是将以下代码添加到Startup.cs中的ConfigureServices方法中:
services.Configure<RazorViewEngineOptions>(options =>
{
var previous = options.CompilationCallback;
options.CompilationCallback = (context) =>
{
previous?.Invoke(context);
context.Compilation = context.Compilation.AddReferences(MetadataReference.CreateFromFile(typeof(ClassLibrary1.Class1).Assembly.Location));
};
});
我从以下网站得到了这个想法:
Callback on RazorViewEngineOptions
当我添加上述代码时,我确实确认您的示例正常工作。